如何使用python查找图像中有界区域的RGB值?

时间:2018-11-14 15:57:48

标签: python opencv image-processing computer-vision

假设我有图像,需要找到我在哪里绘制矩形,

cv2.rectangle(image,(250,70),(150,45),(0,255,0),5)

在图像上?

如何在cv / python中查找此矩形的具体值?

1 个答案:

答案 0 :(得分:0)

是的,可以在边界框中提取区域的RGB值。

假定您使用CV2读取图像,则该图像已被表示为BGR。您要做的就是在边界框中找到一个点,然后提取该点的BGR值。请注意,我使用的是BGR,因为这是OpenCV读取图像的方式。

使用您使用的边界框顶点,只需在边界框中计算一个中点,然后提取图像中该中点的BGR值即可。

# midpoint is ((y_max - y_min) // 2 + y_min, (x_max - x_min) // 2 + x_min)
point = ((70 - 45) // 2 + 45, (250 - 150) // 2 + 150)

b, g, r = image[point]

如果边框中的像素具有不同的颜色,则此方法将不起作用。在这种情况下,也许您想获取平均BGR值。

# image[y_min:y_max, x_min:x_max]
region = image[45:70, 150:250]

b, g, r = np.mean(region, axis=(0, 1))