【发布时间】:2017-04-19 22:00:39
【问题描述】:
我在 Matlab (m,n,3)[double] 中有一个彩色 rgb 图像。我分别在每个通道上执行线性扩散过程。 LinearDiffusion 输出的第一个元素是一个双精度数组 (m,n,1)。
[m,n,j]=size(noisy_image)
rgb_im=zeros(m,n,3);
for chn=1:3
noisy_chn=noisy_image(:,:,chn);
[rgb_im(:,:,chn), diff_un]=LinearDiffusion2016(noisy_chn, 0, dt, maxnl);
end
我想显示 rgb_im,即 (m,n,3)[double]。但无论我做什么,总是得到一个空白方块,即使图像值没有饱和。我对灰度(uint8)图像没有任何问题。有什么想法吗?
更新:源图像是 (m,n,3)[unit8],但我将每个通道变成双通道以将其馈送到 LinearDiffusion。
谢谢。
【问题讨论】:
-
得到一个空白方块意味着当您使用
imshow绘制它时看起来是白色的?如果您的图像是双倍的,则必须将其标准化为 [0..1]。尝试使用imshow(yourimage,[]),您应该可以正确看到图像。 -
rgb_im 实际上是 uint。是我对图像进行了修补,将其变成了双重图像以将其提供给 LinearDiffusion。我的错,对不起。
标签: arrays image matlab rgb data-conversion