常用的一些图像处理 Matlab 源代码
2010-05-05 20:07
#1:数字图像矩阵数据的显示及其傅立叶变换
#2:二维离散余弦变换的图像压缩
#3:采用灰度变换的方法增强图像的对比度
#4:直方图均匀化
#5:模拟图像受高斯白噪声和椒盐噪声的影响
#6:采用二维中值滤波函数 medfilt2对受椒盐噪声干扰的图像滤波
#7:采用 MATLAB 中的函数 filter2对受噪声干扰的图像进行均值滤波
#8:图像的自适应魏纳滤波
#9:运用5种不同的梯度增强法进行图像锐化
#10:图像的高通滤波和掩模处理
#11:利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理
#12:利用巴特沃斯(Butterworth)高通滤波器对受噪声干扰的图像进行平滑处理
1.数字图像矩阵数据的显示及其傅立叶变换
f=zeros(30,30);
f(5:24,13:17)=1;
imshow(f, 'notruesize');
F=fft2(f,256,256); % 快速傅立叶变换算法只能处矩阵维数为2的幂次,f 矩阵不
% 是,通过对 f 矩阵进行零填充来调整
F2=fftshift(F); % 一般在计算图形函数的傅立叶变换时,坐标原点在
% 函数图形的中心位置处,而计算机在对图像执行傅立叶变换
% 时是以图像的左上角为坐标原点。所以使用函数 fftshift 进
%行修正,使变换后的直流分量位于图形的中心;
figure,imshow(log(abs(F2)),[-1 5],'notruesize');
2 二维离散余弦变换的图像压缩
I=imread('cameraman.tif'); % MATLAB 自带的图像
imshow(I);
clear;close all
I=imread('cameraman.tif');
imshow(I);
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8], 'P1*x*P2',T,T');
Mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0