- OpenCV计算机视觉项目实战(Python版)
- 洪锦魁
- 240字
- 2024-12-27 18:56:02
2-6-2 读取特定彩色图像像素坐标的BGR值
参考ch2_2.py第4行,使用如下指令读取图像。
img = cv2.imread(“jk.jpg”)
假设想获得(169, 118)的BGR值(这是采用OpenCV坐标概念),可以使用如下指令。
px = img[169, 118]
上述用彩色图像读取时,返回的是Numpy模块的数组数据类型(numpy.ndarray)。
程序实例ch2_4.py:列出彩色图像OpenCV坐标(169, 118)的BGR值和此值的数据类型。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P29_1481.jpg?sign=1739630092-r9KanKTcylWPtzPzWG2m7GfpcSNBSFnU-0-744f860af776da4bc4f78ec3aae955db)
执行结果 BGR通道的值分别是45、112、191。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P29_1484.jpg?sign=1739630092-15QhaSJqe7cGeJ7c50EJKkjFPRcg0r7U-0-2b01f0e33275a58910eb660e3c0362b9)
除了上述方法,也可以一次获得一个通道的值,方法如下。
blue = img[pt_y, pt_x, 0] # B通道值 green = img[pt_y, pt_x, 1] # G通道值 red = img[pt_y, pt_x, 2] # R通道值
程序实例ch2_5.py:列出OpenCV坐标(169, 118)的BGR通道各个值。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P29_1488.jpg?sign=1739630092-bmH8FN0ivTQaPsYNuy7rdqCbwXGwvIeD-0-2af48ef7824646be4306249db52271d9)
执行结果
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P29_1491.jpg?sign=1739630092-aGMZt57EnrYwhyqsxZeLfaQAwzleTVgh-0-e7ac2b4a65635a41eb425f3eec5f7459)