我想对SPOT5图像进行直方图均衡化。我试着用histeq
命令。为什么这不起作用?
这是我的输入和错误:
>>I = imread('C:\Users\windows 8\Downloads\ori.tif');
>>imshow( I(:,:,1:3) )
警告:图像太大,无法放在屏幕上;显示为17% 在imuitools \ private \ initSize at 72In imshow at 283
>> J = histeq(I);
使用histeq时出错 预期的输入数字1,I,是二维的。
我还是matlab的新手。我真的 感谢一些帮助。提前谢谢
答案 0 :(得分:1)
警告正在发生,因为or.tif的图像尺寸大于屏幕。它只是告诉你它没有以完整尺寸显示它。这不会影响直方图均衡。
直方图均衡化的错误是因为matlab期望I是2D矩阵。您的TIFF文件是一个3D矩阵,它的宽度为x高x颜色。
根据您使用直方图均衡化尝试实现的目标,您可能需要先将图像转换为灰度图像
greyI = rgb2gray( I(:,:,1:3) );
J = histeq( greyI );
或依次对三个颜色平面中的每一个应用直方图均衡。
J = zeros( size( I ) );
J(:,:,1) = histeq( squeeze( I(:,:,1) ) );
J(:,:,2) = histeq( squeeze( I(:,:,2) ) );
J(:,:,3) = histeq( squeeze( I(:,:,3) ) );
% Next line if you have alpha channel
if( size( J, 3 ) == 4 )
J(:,:,4) = histeq( squeeze( I(:,:,4) ) );
end