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');%调入原图像
[mn]=size(I);
J=[];
fori=1:m
value=I(i,1);
num=1;
forj=2:n
ifI(i,j)==value
num=num+1;
else
J=[Jnumvalue];
num=1;
value=I(i,j);
end
end
I=[Jnumvalue00];%添加的行判断位00
end
disp('原图像大小:')
whos('I');
disp('压缩图像大小:')
whos('J');
disp('图像的压缩比:')
disp(m*n/length(J))

















MyTest20.m
图像融合
1)调入,显示两幅图像的程序语句
loadtartan;
X1=X;map1=map;
Loadsinsin;
X2=X;map2=map;%打开图像
Subplot(121)
Image(X1),colormap(map1);
Title('图像map1')
Subplot(122)
Image(X2),colormap(map2);
Title('图像map2')%显示两幅图像
2)两幅图像直接融合的程序语句
figure,subplot(131)
image((X1+X2)/2),colormap(map2);%在空域内直接融合
title('两图像直接相加融合')%显示融合后的图像,并命名为"两图像直接相加融合"
3)两幅图像傅立叶变换融合的程序语句
F1=fft2(X1);
F2=fft2(X2);%分别计算两幅图像的快速傅立叶变换
X=abs(ifft2(F1+F2)/2);%两幅图像在频域内相加后的傅立叶逆变换
Subplot(132)
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(133)
Image(X/2),colormap(map2);%显示经过小波变换融合后的图像
Title('两图像小波变换融合')%给融合后的图像命名并显示在图上
本文介绍了使用MATLAB进行图像处理的方法,包括傅立叶变换、直方图均衡化及不同类型的图像融合技术,如直接融合、傅立叶变换融合和小波变换融合。

被折叠的 条评论
为什么被折叠?



