【发布时间】:2017-08-27 12:09:08
【问题描述】:
我需要得到一个圆的最小 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] 对这里没有影响。
这是原图。
【问题讨论】: