python 百分比 图_使用直方图的图像python opencv中的颜色百分比

import numpy as np

import cv2

img = cv2.imread('J9MbW.jpg')

brown = [145, 80, 40] # RGB

diff = 20

boundaries = [([brown[2]-diff, brown[1]-diff, brown[0]-diff],

[brown[2]+diff, brown[1]+diff, brown[0]+diff])]

# in order BGR as opencv represents images as numpy arrays in reverse order

for (lower, upper) in boundaries:

lower = np.array(lower, dtype=np.uint8)

upper = np.array(upper, dtype=np.uint8)

mask = cv2.inRange(img, lower, upper)

output = cv2.bitwise_and(img, img, mask=mask)

ratio_brown = cv2.countNonZero(mask)/(img.size/3)

print('brown pixel percentage:', np.round(ratio_brown*100, 2))

cv2.imshow("images", np.hstack([img, output]))

cv2.waitKey(0)

这应该适合你.但请注意,它高度依赖于您的棕色RGB值以及您所需的公差(差异).

如果您对上述代码的详细信息有任何疑问,请随时提出.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值