【发布时间】:2014-03-25 18:34:10
【问题描述】:
我目前有一个图像,我是一个尺寸为 600*800*3 的数组。最后一个维度是颜色,但如果我执行 imshow(im) 我会看到黑色。如何添加图像的 R G 和 B。我使用了以下代码,但我需要确认或者是否有更好的方法。正如我现在看到的东西,但它就像阴影。使用的代码如下:
imdata = im1;
RC = imdata(:,:,1);
GC = imdata(:,:,2);
BC = imdata(:,:,3);
FC = RC + GC + BC;
imshow(FC)
FC 的尺寸为 600*800。这是正确的方法,还是有其他方法?任何帮助将不胜感激。谢谢!
编辑:我添加了如下比例因子:
FC = 33RC + 33GC + 33BC;
我看到的图像是灰度的,而且更亮。对吗?
Edit2:我使用了 cmets 中提到的以下因素:
rgb = 0.2989 * RC + 0.5870 * GC + 0.1140 * BC;
rgb = uint8(255*rgb);
谢谢!
【问题讨论】:
-
这可能对你有帮助:stackoverflow.com/a/20959617/2777181
-
当您说“我看到黑色”时,您的意思是它显示的图像看起来像灰度吗?还是什么都不显示?
-
imshow(im, [])是否正确显示原始图像? -
不。所以它显示黑色有2个白点。我认为需要亮度才能看到这个数字。因此,现在根本看不到任何数字。
-
因此,通过将每个通道乘以较大的值(例如 33),图像变得有用。然后我建议将
im1乘以65535并转换为uint8,那么它可能是颜色。原因是因为对于doubles,显示函数期望[0,1],而对于uint8,它期望[0,255]。