部分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 ' );  % 调入原图像
[m n]
= size(I);
J
= [];
for  i = 1 : m
value
= I(i , 1 );
num
= 1 ;
for  j = 2 : n
if  I(i , j) == value
num
= 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(
' 两图像小波变换融合 ' % 给融合后的图像命名并显示在图上 

你可能感兴趣的:(c,image,matlab,fft)