图像openCV python中颜色/结构的百分比

2024-04-26 12:33:26 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有一种实现方法或过程可以使用opencv获得图像中结构/颜色百分比的近似值。我尝试了几种方法,通过使用掩码、CLAHE、内核、转换……但是没有真正实现我所期望的。 假设我要计算或检测一个结构的百分比,它可以在一个特定的图像中有一个颜色。例如,如果我有以下图像:
redeye 如果我想代表血管的百分比(那些红色的),我该怎么做?。 这是我已经尝试过的方法,但似乎不是最佳方法:

path = 'C:/.../redeye.jpg'
img=cv2.imread(path)
#try with HSV (I already tried RGB transformation)
img_hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# lower mask (0-10)
lower_red = np.array([7,50,50])
upper_red = np.array([10,255,255])
mask0 = cv2.inRange(img_hsv, lower_red, upper_red)

# upper mask (170-180)
lower_red = np.array([170,50,50])
upper_red = np.array([180,255,255])
mask1 = cv2.inRange(img_hsv, lower_red, upper_red)



# join my masks
mask = mask0+mask1

# set my output img to zero everywhere except my mask
output_img = img.copy()
output_img[np.where(mask==0)] = 0
plt.imshow(output_img)
plt.show()

Tags: 方法图像imgoutputmynpmaskred