为了将恒定值添加到每个像素的饱和度值,我在双循环中执行此操作。我想知道是否有更简单、更快的命令来实现这一点。
对于我尝试的实验,分割 hsv 值、调整各个通道然后进行合并的替代方法提供了更好的性能。与循环像素相比,下面的方法对我来说要快很多倍:
(h, s, v) = cv2.split(imghsv)
s = s*satadj
s = np.clip(s,0,255)
imghsv = cv2.merge([h,s,v])
请注意,我已在 BGR2HSV 转换期间将值转换为 float32,以避免饱和转换期间因 uint8(默认)溢出而出现负值:
imghsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV).astype("float32")
并在饱和度调整后将其转换回默认 uint8:
imgrgb = cv2.cvtColor(imghsv.astype("uint8"), cv2.COLOR_HSV2BGR)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)