如何解决将Gimp“色彩增强”算法转换为python
我正在尝试编码与Gimp中的“色彩增强”相同的效果。这是文档:https://docs.gimp.org/2.8/en/plug-in-color-enhance.html
基本上说:它是通过将颜色转换为HSV空间,测量整个图像的饱和度值范围,然后将该范围扩大到尽可能大,最后将颜色转换回RGB来实现的。 。它与“拉伸对比度”相似,不同之处在于它可以在HSV颜色空间中工作,因此可以保留色相。
我试图以这种方式实现算法:
def enhanced(hsv):
h,s,v = cv2.split(hsv)
s_equ = cv2.equalizeHist(s)
hsv_image = cv2.merge([h,s_equ,v])
out = cv2.cvtColor(hsv_image,cv2.COLOR_HSV2BGR)
cv2.imwrite("out.jpg",out)
img2 = cv2.imread("IMG_0233.jpg")
hsv2 = cv2.cvtColor(img2,cv2.COLOR_BGR2HSV)
enhanced(hsv2)
但是我没有与Gimp相同的结果:
输入图片:
Gimp颜色增强的结果:
我的脚本的结果:
我有什么想念的吗?非常感谢。
解决方法
可能一个(可能是Gimp)正在“线性光”上工作(可能如果您正在使用GEGL,“色彩增强”的非旧版本),而另一个正在使用伽玛压缩值。在Gimp中,您可以使用“指针”对话框获取像素的HSV值,并与CV产生的值进行比较。
Gimp 2.10颜色增强功能的来源在这里:
https://gitlab.gnome.org/GNOME/gegl/-/blob/master/operations/common/color-enhance.c
评论状态:
* This operation is inspired from the color enhance gimp plugin.
* It alters the chroma component to cover maximum possible range,* keeping hue and lightness untouched.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。