【发布时间】:2015-09-01 08:22:37
【问题描述】:
我有一个表示强度的 8 位灰度图像。我想根据强度值用颜色显示它(要清楚,像这样http://www.matthiaspospiech.de/files/matlab/plot/pcolor/pcolor-example-simple.png)。
我尝试使用 HSV 比例(H 在 (0->85) 或 (85->140) 或 (140->255) 中,然后返回 RGB,但它似乎不起作用。有没有想法?这是我的代码:(它在i 和j 上循环运行,img 是灰度图像,
grey = img[j*w+i];
H = (grey * 360.0) / 255 ;
X = 1-((int)abs((int)(h/60.0) % 2) - 1);
if(BETWEEN(H,0,60) || BETWEEN(H,300,360)) r = 1.0;
else if(BETWEEN(H,60,120) || BETWEEN(H,240,300)) r = X;
else r = 0;
if(BETWEEN(H,60,180)) g = 1.0;
else if(H >= 240) g = 0;
else g = X;
if(BETWEEN(H,180,300)) b = 1.0;
else if(H < 120) b = 0;
else b = X;
R = (int)(r*255.0);
G = (int)(g*255.0);
B = (int)(b*255.0);
(最终目标是在带有 OpenImaj 的 Java 程序中使用它,所以如果有人对此有所了解,也可以:)
【问题讨论】:
-
如果你想在 Java 中做,为什么要使用 C++ 和 C 标签?
-
因为我现在在 C/C++(使用 SDL)中测试它更容易:)
-
正如给定的那样,它既不是 java,也不是 c 或 c++。请选择一个语言标签,不要只指定所有可用的。
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。
-
如给定的,它可以是 Java 或 C/C++(因为它实际上是 C/C++),我只选择了代码中有用的部分