使用“hip”Haskell库再现imager::RGBtoHSI

dzhpxtsq  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(87)

我用Haskell的'hip'库做了这个图像(这是一个复杂函数的着色):

现在,当我将R包'imager'的RGBtoHSI函数应用于此图像时,我获得了以下内容:

我想知道如何使第二个图像从第一个与'髋关节'。在'hip'中有一个“rgb to hsi”功能,但它只是将RGB坐标转换为HSI坐标。我不知道R函数在做什么。我看了一下代码,但它是用C++写的,它依赖于一个3Mb的头文件。事实上,我想知道它是做什么的,也许我可以把它移植到Haskell。我不认为有一个内置的功能在'髋关节'(我没有发现在文档)。

vsdwdz23

vsdwdz231#

你的R版本只是一个错误的和残缺的版本,你也可以在Haskell/hip中使用toPixelHSI。具体而言,R转换所做的是将色调生成为Angular (范围0-360),而其他通道在范围0-1内。如果你保存,它会将色调Angular Map到红色通道,并归一化到Angular ,这意味着其他通道被压制到几乎完全为零-太低而不可见,但我们可以将它们提升回来(尽管它们当然只量化到两个级别):

这个,没有量化,基本上就是toPixelHSI在hip中给你的。
如果你真的想要一开始在R中得到的东西-好吧,明智的做法是只从HSI像素中提取色调通道,并使用任何你喜欢的颜色图。
或者,也许更有见地,只需取复函数的argument并将其绘制为实值函数。

相关问题