python如何设置rgb颜色_【Python图像处理】RGB颜色转HSV颜色的快速实现

传送门

思路

使用NumPy。NumPy对数组和矩阵的运算有大幅度的提速。因此,使用NumPy设计算法时,应该充分利用这一特性,尽可能用NumPy中的矩阵运算来代替遍历等耗时的操作。

RGB转HSV

非矩阵的方法

根据RGB和HSV的转换公式可以构建出以下数值计算的代码,使用控制语句实现分段函数,使用python内置函数实现数学运算。 然而,以下代码只对一个像素点进行转换,对于一张1000*1000的图片,需要循环调用100万次。显然,这是一种容易理解的算法,但性能并不好。

def rgb2hsv(r, g, b):

r, g, b = r / 255.0, g / 255.0, b / 255.0

mx = max(r, g, b)

mn = min(r, g, b)

df = mx - mn

if mx == mn:

h = 0

elif mx == r:

h = (60 * ((g - b) / df) + 360) % 360

elif mx == g:

h = (60 * ((b - r) / df) + 120) % 360

elif mx == b:

h = (60 * ((r - g) / df) + 240) % 360

if mx == 0:

s = 0

else:

s = df / mx

v = mx

return h, s,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值