MyTest17.m I = imread( ' c:oat.png ' ); % 读入原图像文件imshow(I); % 显示原图像fftI = fft2(I); % 二维离散傅立叶变换sfftI = fftshift(fftI); % 直流分量移到频谱中心RR = real(sfftI); % 取傅立叶变换的实部II = imag(sfftI); % 取傅立叶变换的虚部A = sqrt(RR. ^ 2 + II. ^ 2 ); % 计算频谱幅值A = (A - min(min(A))) / (max(max(A)) - min(min(A))) * 225 ; % 归一化figure; % 设定窗口imshow(A); % 显示原图像的频谱 MyTest18.m I = imread( ' c:oat.png'); % 读入原图像 J = histeq(I); %对原图像进行直方图均衡化处理Imshow(I); %显示原图像Title( ' 原图像');%给原图像加标题名 figure,imshow(J);%对原图像进行屏幕控制;显示直方图均衡化后的图像Title( ' 直方图均衡化后的图像') ; %给直方图均衡化后的图像加标题名 figure; subplot( 1 , 2 , 1 ) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图Imhist(I, 64 ); %将原图像直方图显示为64级灰度Title( ' 原图像直方图') ; %给原图像直方图加标题名 Subplot( 1 , 2 , 2 ); %作第2幅子图Imhist(J, 64 ) ; %将均衡化后图像的直方图显示为64级灰度Title( ' 均衡变换后的直方图') ; %给均衡化后图像直方图加标题名 MyTest19.m 利用行程编码(RLE)进行图像压缩 I = imread( ' c:oat.png ' ); % 调入原图像[m n] = size(I);J = []; for i = 1 : mvalue = I(i , 1 );num = 1 ; for j = 2 : n if I(i , j) == valuenum = num + 1 ; else J = [J num value];num = 1 ;value = I(i , j); end end I = [J num value 0 0 ]; % 添加的行判断位 0 0 end disp( ' 原图像大小: ' )whos( ' I ' );disp( ' 压缩图像大小: ' )whos( ' J ' );disp( ' 图像的压缩比: ' )disp(m * n / length(J))MyTest20 . m图像融合 1 )调入 , 显示两幅图像的程序语句load tartan;X1 = X;map1 = map;Load sinsin;X2 = X;map2 = map; % 打开图像Subplot( 1 2 1 )Image(X1) , colormap(map1);Title( ' 图像map1 ' )Subplot( 1 2 2 )Image(X2) , colormap(map2);Title( ' 图像map2 ' ) % 显示两幅图像 2 )两幅图像直接融合的程序语句figure , subplot( 1 3 1 )image((X1 + X2) / 2 ) , colormap(map2); % 在空域内直接融合title( ' 两图像直接相加融合 ' ) % 显示融合后的图像 , 并命名为 " 两图像直接相加融合 " 3 )两幅图像傅立叶变换融合的程序语句F1 = fft2(X1);F2 = fft2(X2); % 分别计算两幅图像的快速傅立叶变换X = abs (ifft2(F1 + F2) / 2 ); % 两幅图像在频域内相加后的傅立叶逆变换Subplot( 1 3 2 )Image(X) , colormap(map2); % 显示融合后的图像Title( ' 两幅图像傅立叶变换融合 ' ) % 给融合后的图像命名并显示在图上 4 )两幅图像小波变换融合的程序语句[C1 , L1] = wavedec2(X1 , 2 , ' sym4 ' );[C2 , L2] = wavedec2(X2 , 2 , ' sym4 ' ); % 分别对两幅原图像进行小波分解C = C1 + C2; % 对分解系数进行融合X = waverec2(C , L1 , ' sym4 ' ); % 对融合后的信号进行图像重构Subplot( 1 3 3 )Image(X / 2 ) , colormap(map2); % 显示经过小波变换融合后的图像Title( ' 两图像小波变换融合 ' ) % 给融合后的图像命名并显示在图上