我有一些问题导致matlab按照自己的意愿做事。 当我运行上面的代码(仅运行脚本文件)时,我得到了正确的结果。
A=imread('ct.png');
B=imread('mri.png');
A=double(A);
B=double(B);
C = wfusmat(A,B,'max')
imshow(subplot(221));
subplot(221),image(A),axis square,Title('Image1')
subplot(222),image(B),axis square,Title('Image2')
subplot(223),image(C),axis square,Title('Fused Image')
虽然当我尝试在UI文件中运行此代码时:
A=imread('ct.png');
B=imread('mri.png');
A=double(A);
B=double(B);
C = wfusmat(A,B,'max');
axes(handles.axes3);
imshow(C);
我得到的结果就像一张带有许多白色像素的扭曲图像。实际上你什么也看不见。
任何想法为何会发生这种情况?我想,因为代码在单个脚本中正确运行,所以当它在UI主脚本内运行时也应该这样做....
答案 0 :(得分:0)
命令imread
返回0到255之间的值
在第一个示例中,您使用image
来显示接受相同值范围的图像
但是,在第二个示例中,您使用了接受0和1之间值的命令imshow
。在这种情况下,大于1的值显示为白色,这说明了您看到的许多白色像素。