我需要获取圆形的最小RGB值。如何像平均RGB值方法(cv2.mean)应用掩码一样操作?为了获取圆形的平均RGB值,我正在执行以下操作:
circle_img = np.zeros((circle_img.shape[0],circle_img.shape[1]), np.uint8)
cv2.circle(circle_img,(x_center,y_center),radio,(255,255,255),-1)
datos_rgb = cv2.mean(color_img, mask=circle_img)
在这里,color_img
是原始图像。
要获取最小的RGB值,我正在执行以下操作:
masked_data = cv2.bitwise_and(color_img, color_img, mask=circle_img)
rgb_min = masked_data.reshape((masked_data.shape[0]*masked_data.shape[1], 3)).min(axis=0)
当masked_data
是第二个图片(遮罩圆)时。
但由于背景,我一直得到[0,0,0]这个值...我需要像平均值(cv2.mean)一样应用掩码来忽略黑色背景。原始图像中没有纯黑色,因此无法获得值[0,0,0]。
要获取最大的RGB值,可以通过以下方式完美运作:
masked_data = cv2.bitwise_and(color_img, color_img, mask=circle_img)
rgb_max = masked_data.reshape((masked_data.shape[0]*masked_data.shape[1], 3)).max(axis=0)
因为黑色[0,0,0]在此处不起作用。
这是原始图像。