【发布时间】:2016-12-29 19:34:05
【问题描述】:
我有一张以白纸为背景的叶子图片,我需要去除噪点(黄点)并获取叶子的像素值(bgr)。
我使用绿色阈值来检测叶子并用原始图像对其进行掩蔽。我使用 cv2.mean 来获取像素值,但它计算了所有像素,包括黑色区域/背景。
如何仅获取叶子的像素值? 这是我使用的代码:
import cv2
import numpy as np
img=cv2.imread('crop21.jpg')
blur=cv2.GaussianBlur(img,(5,5),0)
hsv=cv2.cvtColor(blur,cv2.COLOR_BGR2HSV)
#threshold green
low_g=np.array([35,100,60],np.uint8)
up_g=np.array([85,255,190],np.uint8)
mask=cv2.inRange(hsv,low_g,up_g)
mask_upstate=cv2.bitwise_and(blur, blur, mask=mask)
#get the bgr value
mean=cv2.mean(mask_upstate)
print (mean)
cv2.imshow('image',mask_upstate)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
标签: python opencv image-processing