数字图像处理——实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 空间滤波
1. 给定图像添加噪声(高斯噪声和椒盐噪声)(imnoise) 2. 使用平均滤波器、中值滤波器对不同强度的高斯噪声和
椒盐噪声,进行滤波处理(fspecial, filter2, medfilt2)
实验二——参考答案
• f=imread('medicine_pic.jpg');
• g=imhist(f,256);
பைடு நூலகம்
• figure,imshow(L);
• figure,imshow(M);
• figure,imshow(N);
实验三
1、 利用 MATLAB 实现数字图像的傅里叶变换
读入并显示图test1.tif ,作该图的二维 FFT 变换 F,将其直流分量 移到频谱中心 F1(fftshift()函数),计算其实部 RR、虚部 II,用两 种方法计算幅值 A1=abs(F1)和 A2=sqrt(RR.^2+II.^2),分别显示 A1 和 A2,并加以比较。
%均值滤波3×3
• L = filter2(ave2,J)/255;
%均值滤波5×5
• M = medfilt2(J,[3 3]);
%中值滤波3×3模板
• N = medfilt2(J,[4 4]);
%中值滤波4×4模板
• imshow(I);
• figure,imshow(J);
• figure,imshow(K);
%添加高斯噪声
• J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声
• ave1=fspecial('average',3);
%产生3×3的均值模版
• ave2=fspecial('average',5);
%产生5×5的均值模版
• K = filter2(ave1,J)/255;
实验三
2、近似冲击函数二维傅里叶变换
A=zeros(99,99); A(49:51,49:51)=1; 作 A 的二维傅里叶变换 B,将 B 直流分量移到频谱中心 B1,分别 用函数 imshow 和 mesh 显示A 和 B1 模的对数(log(1+abs(B1)))
实验三——参考答案
A=zeros(99,99); A(49:51,49:51)=1; B=fft2(A); B1=fftshift(B); figure,imshow(A); title('冲击函数imsow'); figure,mesh(A); title('冲击函数mesh'); figure,imshow(log(1+abs(B1))); title('冲击函数频域模mesh'); figure,mesh(log(1+abs(B1))) title('冲击函数频域模mesh');
• Figure,imshow(J);
%显示均衡化图像
• %对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅
• figure; subplot(1,2,1) ;
• imhist(I,64);
%将原图像直方图显示为64级灰度
• title(‘原图像直方图’) ; %给原图像直方图加标题名
%显示其直方图
• g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)
• figure,imshow(g1)
• %将0.5到0.75的灰度级扩展到范围[0 1]
• g2=imadjust(f,[0.5 0.75],[0 1]);
• figure,imshow(g2)
数字图像处理——实验
实验一、计算图象统计参数
在matlab软件编写程序: 读取图像(文件名为‘cameraman.tif’); 最大值 最小值 均值 直方图(要求不能调用imhist函数,只能用该函数来
验证自编直方图程序块的正确性)。
实验二
• 灰度和直方图变换
1. 图像数据读出 2. 计算并分析图像直方图(imhist) 3. 利用直接灰度变换法对图像进行灰度变换(imadjust) 4. 直方图均衡化处理及显示(histeq)
实验三
3、空间滤波与频域滤波
将图 test2.tif 分别进行空间与频域滤波。
test2.tif
空间滤波:
用 fspecial 产生 9*9,标准差为 2 的高斯滤波器 w,用函数 imfilter 对 f 进行空 间滤波,得到滤波后的图像 fi1。
频域滤波:
将上述高斯滤波器 w 用函数 freqz2 获得其256*256 频域形式 W,用 W 在频域 滤波图像 f(注意 W 的直流分量在频谱中心),得到 Ff,求其傅里叶逆变换 (ifft2),得到滤波后的图像 fi2。用函数 imshow 显示 w,用函数 mesh 显示 W,用 mshow 显示 f,fi1,Ff 的模的对数,fi2。比 较 fi1 与 fi2。
• subplot(1,2,2);
%作第2幅子图
• imhist(J,64) ;
%将均衡化后图像的直方图显示为64级灰度
• title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名
实验二——参考答案
• I=imread('electric.tif');
• J = imnoise(I,'gauss',0.02);
test1.tif
实验三——参考答案
i=imread(‘test1.tif'); figure,imshow(i); title(‘test1.tif'); f=fft2(i); f1=fftshift(f); rr=real(f1); ii=imag(f1); a1=abs(f1); a2=sqrt(rr.^2+ii^2); aa1=log(1+a1); aa2=log(1+a2); figure,imshow(aa1,[]); title('a1 abs'); figure,imshow(aa2,[]); title('a2 sqrt');
• g=imread('point.jpg');
• h=log(1+double(g));
%对输入图像对数映射变换
• h=mat2gray(h);
%将矩阵h转换为灰度图片
• h=im2uint8(h);
%将灰度图转换为8位图
• figure,imshow(h)
• J=histeq(f);
%对原图像进行直方图均衡化处理
1. 给定图像添加噪声(高斯噪声和椒盐噪声)(imnoise) 2. 使用平均滤波器、中值滤波器对不同强度的高斯噪声和
椒盐噪声,进行滤波处理(fspecial, filter2, medfilt2)
实验二——参考答案
• f=imread('medicine_pic.jpg');
• g=imhist(f,256);
பைடு நூலகம்
• figure,imshow(L);
• figure,imshow(M);
• figure,imshow(N);
实验三
1、 利用 MATLAB 实现数字图像的傅里叶变换
读入并显示图test1.tif ,作该图的二维 FFT 变换 F,将其直流分量 移到频谱中心 F1(fftshift()函数),计算其实部 RR、虚部 II,用两 种方法计算幅值 A1=abs(F1)和 A2=sqrt(RR.^2+II.^2),分别显示 A1 和 A2,并加以比较。
%均值滤波3×3
• L = filter2(ave2,J)/255;
%均值滤波5×5
• M = medfilt2(J,[3 3]);
%中值滤波3×3模板
• N = medfilt2(J,[4 4]);
%中值滤波4×4模板
• imshow(I);
• figure,imshow(J);
• figure,imshow(K);
%添加高斯噪声
• J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声
• ave1=fspecial('average',3);
%产生3×3的均值模版
• ave2=fspecial('average',5);
%产生5×5的均值模版
• K = filter2(ave1,J)/255;
实验三
2、近似冲击函数二维傅里叶变换
A=zeros(99,99); A(49:51,49:51)=1; 作 A 的二维傅里叶变换 B,将 B 直流分量移到频谱中心 B1,分别 用函数 imshow 和 mesh 显示A 和 B1 模的对数(log(1+abs(B1)))
实验三——参考答案
A=zeros(99,99); A(49:51,49:51)=1; B=fft2(A); B1=fftshift(B); figure,imshow(A); title('冲击函数imsow'); figure,mesh(A); title('冲击函数mesh'); figure,imshow(log(1+abs(B1))); title('冲击函数频域模mesh'); figure,mesh(log(1+abs(B1))) title('冲击函数频域模mesh');
• Figure,imshow(J);
%显示均衡化图像
• %对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅
• figure; subplot(1,2,1) ;
• imhist(I,64);
%将原图像直方图显示为64级灰度
• title(‘原图像直方图’) ; %给原图像直方图加标题名
%显示其直方图
• g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)
• figure,imshow(g1)
• %将0.5到0.75的灰度级扩展到范围[0 1]
• g2=imadjust(f,[0.5 0.75],[0 1]);
• figure,imshow(g2)
数字图像处理——实验
实验一、计算图象统计参数
在matlab软件编写程序: 读取图像(文件名为‘cameraman.tif’); 最大值 最小值 均值 直方图(要求不能调用imhist函数,只能用该函数来
验证自编直方图程序块的正确性)。
实验二
• 灰度和直方图变换
1. 图像数据读出 2. 计算并分析图像直方图(imhist) 3. 利用直接灰度变换法对图像进行灰度变换(imadjust) 4. 直方图均衡化处理及显示(histeq)
实验三
3、空间滤波与频域滤波
将图 test2.tif 分别进行空间与频域滤波。
test2.tif
空间滤波:
用 fspecial 产生 9*9,标准差为 2 的高斯滤波器 w,用函数 imfilter 对 f 进行空 间滤波,得到滤波后的图像 fi1。
频域滤波:
将上述高斯滤波器 w 用函数 freqz2 获得其256*256 频域形式 W,用 W 在频域 滤波图像 f(注意 W 的直流分量在频谱中心),得到 Ff,求其傅里叶逆变换 (ifft2),得到滤波后的图像 fi2。用函数 imshow 显示 w,用函数 mesh 显示 W,用 mshow 显示 f,fi1,Ff 的模的对数,fi2。比 较 fi1 与 fi2。
• subplot(1,2,2);
%作第2幅子图
• imhist(J,64) ;
%将均衡化后图像的直方图显示为64级灰度
• title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名
实验二——参考答案
• I=imread('electric.tif');
• J = imnoise(I,'gauss',0.02);
test1.tif
实验三——参考答案
i=imread(‘test1.tif'); figure,imshow(i); title(‘test1.tif'); f=fft2(i); f1=fftshift(f); rr=real(f1); ii=imag(f1); a1=abs(f1); a2=sqrt(rr.^2+ii^2); aa1=log(1+a1); aa2=log(1+a2); figure,imshow(aa1,[]); title('a1 abs'); figure,imshow(aa2,[]); title('a2 sqrt');
• g=imread('point.jpg');
• h=log(1+double(g));
%对输入图像对数映射变换
• h=mat2gray(h);
%将矩阵h转换为灰度图片
• h=im2uint8(h);
%将灰度图转换为8位图
• figure,imshow(h)
• J=histeq(f);
%对原图像进行直方图均衡化处理