`
pleasetojava
  • 浏览: 704524 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

部分matlab代码

阅读更多



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(
'两图像小波变换融合')%给融合后的图像命名并显示在图上
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics