我正在尝试自动增强一些图像,这些图像将被传输到数字帧。我已经准备好了调整大小的代码,将日期/时间添加到图像的最不重要(最不详细)的角落,并将成对的肖像图像粘贴在一起,以避免在帧的41:20低分辨率屏幕中显示单个肖像。
我已经为那些光线不太好的图片实现了亮度拉伸过滤器,使用^{
然而,我注意到PIL^{convert
方法的第二个参数转换为XYZ color space,我想知道:
如何使用convert
方法调用中的自定义矩阵将RGB转换为HSV(然后将HSV转换回RGB)?(在这种情况下,较小的舍入误差并不重要,因此我不介意每个频带都表示为一系列0…255个整数)
提前谢谢你。
尽管我已经看到文献[1]声称HSV颜色空间是RGB的线性变换,这似乎意味着可以用矩阵来完成,但我自己一直无法找到或确定这样的矩阵是什么样的。在某种程度上,基于我所见过的所有[类似的]非矩阵过程性实现,这并不让我感到惊讶——它们的实现方式看起来并不是线性的。
总之,在研究这个问题时,我在前SGI研究员Paul Haeberli的在线计算机图形学笔记本上看到了一篇[有些过时的]文章,题为Matrix Operations for Image Processing,它描述了如何使用4x4矩阵进行多种不同的颜色转换,这可能会对您有所帮助。所有给出的例子都直接在RGB彩色图像上操作,并且,像几何矩阵变换一样,它们的任何序列都可以通过级联组合成单个矩阵。
希望这有帮助。
[1] :颜色空间转换<;http://www.poynton.com/PDFs/coloureq.pdf>;:
将RGB值转换为HSV值的公式可以在这里找到:http://www.rapidtables.com/convert/color/rgb-to-hsv.htm。我曾经反过来需要它,并为它做了以下功能。
相关问题 更多 >
编程相关推荐