python中cv2提取图像rgb值_RGB图像中最主要的颜色-opencv/numpy/python

本文介绍了两种使用numpy的方法——unique_count_app和bincount_app,来从RGB图像中提取最主导的颜色。通过比较,发现bincount_app在性能上优于unique_count_app,特别是在处理大规模彩色图像时。此外,还引入了numexpr库的bincount_numexpr_app方法,进一步提高了计算速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种方法使用

np.unique

np.bincount

为了得到最主要的颜色可以建议。另外,在链接页面中,它还谈到

bincount

作为一个更快的选择,所以这可能是一条路。

接近1

def unique_count_app(a):

colors, count = np.unique(a.reshape(-1,a.shape[-1]), axis=0, return_counts=True)

return colors[count.argmax()]

接近2

def bincount_app(a):

a2D = a.reshape(-1,a.shape[-1])

col_range = (256, 256, 256) # generically : a2D.max(0)+1

a1D = np.ravel_multi_index(a2D.T, col_range)

return np.unravel_index(np.bincount(a1D).argmax(), col_range)

验证和计时

1000 x 1000

密集区域的彩色图像

[0,9)

对于可重复的结果-

In [28]: np.random.seed(0)

...: a = np.random.randint(0,9,(1000,1000,3))

...:

...: print unique_count_app(a)

...: print bincount_app(a)

[4 7 2]

(4, 7, 2)

In [29]: %timeit unique_count_app(a)

1 loop, best of 3: 820 ms per loop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值