部分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
= [];
for i = 1 : m
value
= I(i , 1 );
num
= 1 ;
for j = 2 : n
if I(i , j) == value
num
= num + 1 ;
else
J
= [Jnumvalue];
num
= 1 ;
value
= I(i , j);
end
end
I
= [Jnumvalue 0 0 ]; % 添加的行判断位 0 0
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(
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++,c,C#,J#,matlab)