У меня есть цвет, изображение rgb в Matlab (m, n, 3) [double]. Я выполняю линейный процесс диффузии по каждому каналу отдельно. Первый элемент в выходе LinearDiffusion представляет собой двойной массив (m, n, 1).Matlab. Невозможно объединить двойные массивы в изображение RGB.
[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. Моя вина, извините. – javierjsa