数字图像实验三
数字图像处理实验三中值滤波和均值滤波实验报告

数字图像处理实验三均值滤波、中值滤波的计算机实现12281166 崔雪莹计科1202班一、实验目的:1)熟悉均值滤波、中值滤波处理的理论基础;2)掌握均值滤波、中值滤波的计算机实现方法;3)学习VC++ 6。
0 的编程方法;4)验证均值滤波、中值滤波处理理论;5)观察均值滤波、中值滤波处理的结果。
二、实验的软、硬件平台:硬件:微型图像处理系统,包括:主机,PC机;摄像机;软件:操作系统:WINDOWS2000或WINDOWSXP应用软件:VC++ 6.0三、实验内容:1)握高级语言编程技术;2)编制均值滤波、中值滤波处理程序的方法;3)编译并生成可执行文件;4)考察处理结果。
四、实验要求:1)学习VC++确6。
0 编程的步骤及流程;2)编写均值滤波、中值滤波的程序;3)编译并改错;4)把该程序嵌入试验二给出的界面中(作适当修改);5)提交程序及文档;6)写出本次实验的体会。
五、实验结果截图实验均值滤波采用的是3X3的方块,取周围的像素点取得其均值代替原像素点。
边缘像素的处理方法是复制边缘的像素点,增加一个边框,计算里面的像素值得均值滤波。
六、实验体会本次实验在前一次的实验基础上增加均值滤波和中值滤波,对于椒盐噪声的处理,发现中值滤波的效果更为好一点,而均值滤波是的整个图像变得模糊了一点,效果差异较大。
本次实验更加增加了对数字图像处理的了解与学习。
七、实验程序代码注释及分析// HistDemoADlg.h : 头文件//#include "ImageWnd.h"#pragma once// CHistDemoADlg 对话框class CHistDemoADlg : public CDialogEx{// 构造public:CHistDemoADlg(CWnd* pParent = NULL); // 标准构造函数int nWidth;int nHeight;int nLen;int nByteWidth;BYTE *lpBackup;BYTE *lpBitmap;BYTE *lpBits;CString FileName;CImageWnd source,dest;// 对话框数据enum { IDD = IDD_HISTDEMOA_DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:void LoadBitmap(void);afx_msg void OnOpen();afx_msg void OnHist();void HistogramEq(void);void NoColor(void);void HistogramEq1(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput);void MeanFilter(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput);void MedianFilter(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput);afx_msg void OnBnClickedClose();afx_msg void OnBnClickedMeanfilter();afx_msg void OnBnClickedMedianfilter();};HistDemoADlg.cpp对HistDemoADlg.h进行具体的实现,OnOpen()函数响应ID为IDC_OPEN的按钮事件,而且会调取文件选择对话框,选取文件之后,会显示在原始图像区域显示对应的位图图像,OnHist()函数会响应ID为IDC_HIST的按钮事件,调用HistogramEq()进行直方图均衡化的处理,HistogramEq()会调用HistogramEq1()进行直方图均衡化的处理,并用dst.setImage()显示处理之后的图像,以及NoColor()函数,对原始图像转化为灰度图像之后再显示。
实验三_数字图像处理空域滤波

实验三空域滤波一实验目的1了解空域滤波的方法。
2掌握几种模板的基本原理。
二实验条件PC微机一台和MATLAB软件。
三实验内容1使用函数fspecial( ) 生成几种特定的模板。
2使用函数imfilter( ) 配合模板对图象数据进行二维卷积。
3比较各种滤波器的效果。
四实验步骤空域滤波一般分为线性滤波和非线性滤波。
空域滤波器根据功能分为平滑滤波器和锐化滤波器。
1)平滑空间滤波:平滑的目的有两种:一是模糊,即在提取较大的目标前去除太小的细节或将目标内的小间断连接起来;另一种是消除噪声。
线性平滑(低通)滤波器:线性平滑空域滤波器的输出是包含在滤波掩膜邻域内像素的简单平均值。
线性平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3*3的模板来说,最简单的是取所有系数为1,为了保持输出图像仍然在原来图像的灰度值范围内,模板与像素邻域的乘积都要除以9。
a用h=fspecial(‘average’) 得到的h 为3×3的邻域平均模板,然后用h来对图象lenna.gif进行平滑处理。
>> x=imread('lenna.gif');h=fspecial('average');y=imfilter(x,h);imshow(x);title('原始图像');subplot(1,2,2);imshow(y);title('均值滤波后图像')实验结果如图:b 把模板大小依次改为7×7,9×9和11×11,观察其效果有什么不同?>>x=imread('lenna.gif');subplot(1,4,1);imshow(x);title('原始图像');h=fspecial('average',7);y=imfilter(x,h);subplot(1,4,2);imshow(y);title('模板大小7*7的图像');h1=fspecial('average',9);y1=imfilter(x,h1);subplot(1,4,3);imshow(y1);title('模板大小9*9的图像');h2=fspecial('average',11);y2=imfilter(x,h2);subplot(1,4,4);title('模板大小11*11的图像')比较效果:造成图像的模糊,n选取的越大,模糊越严重。
数字图像处理实验报告

数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。
二、实验设备计算机,Matlab程序平台。
三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。
任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。
噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。
消除图像噪声的工作称为图像平滑或滤波。
针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。
平滑可以在空间域进行,也可以在频率域进行。
1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。
假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。
因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。
对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。
2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。
其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。
其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。
二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。
2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。
数字图像处理上机实验三

医学图像处理实验三1、计算图像的梯度,梯度值和梯度角。
I=imread('C:\Users\Administrator\Desktop\cat.jpg'); B=rgb2gray(I);C=double(B);e=1e-6;%10^-6[dx,dy]=gradient(C);%计算梯度G=sqrt(dx.*dx+dy.*dy);%梯度幅值figure,imshow(uint8(G)),title('梯度图像');pha=atan(dy./(dx+e))figure,imshow(pha,[])图 1图 2 梯度角图2、计算图像边缘检测,用滤波器方式实现各种算子。
(1)Roberts算子clear;I=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);[m,n]=size(B);nB=B;robertsnum=0;%经roberts算子计算得到的每一个像素的值robertsthreshold=0.6;%设定阈值for j=1:m-1;%进行边界提取for k=1:n-1robertsnum=abs(B(j,k)-B(j+1,k+1))+abs(B(j+1,k)-B(j,k+1)); if(robertsnum>robertsthreshold)nB(j,k)=255;elsenB(j,k)=0;endendendsubplot(1,2,1);imshow(B);title('原图');subplot(1,2,2);imshow(nB,[]);title('Robert算子处理后的图像');图 3(2)Sobel算子clear;I=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);[m,n]=size(B);f=double(B);u=double(B);usobel=B;for i=2:m-1%sobel边缘检测for j=2:n-1;gx=(u(i+1,j-1)+2*u(i+1,j)+f(i+1,j+1)-(u(i-1,j-1)+2*u(i-1,j)+f(i-1,j+1)));gy=(u(i-1,j+1)+2*u(i,j+1)+f(i+1,j+1)-(u(i-1,j-1)+2*u(i,j-1)+f(i+1,j-1)));usobel(i,j)=sqrt(gx^2+gy^2);endendsubplot(1,2,1);imshow(B);title('原图');subplot(1,2,2);imshow(im2uint8(usobel));title('Sobel边缘检测后的图像');图 4(3)Prewitt算子clear;I=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);[m,n]=size(B);nB=B;prewittnum=0;%经prewitt算子计算得到的每一个像素的值prewittthreshold=0.6;%设定阈值for j=2:m-1;%进行边界提取for k=2:n-1prewittnum=abs(B(j-1,k+1)-B(j+1,k+1))+B(j-1,k)-B(j+1,k)+B(j-1,k-1)-B(j+1,k-1)+abs(B(j-1,k +1)+B(j,k+1)+B(j+1,k+1)-B(j-1,k-1)-B(j,k-1)-B(j+1,k-1));if(prewittnum>prewittthreshold)nB(j,k)=255;elsenB(j,k)=0;endendendsubplot(1,2,1);imshow(B);title('原图');subplot(1,2,2);imshow(nB,[]);title('Prewitt算子处理后的图像');图 5(4)Laplace边缘检测function flapEdge=LaplaceEdge(pic,Moldtype,thresh)[m,n]=size(pic);flapEdge=zeros(m,n);%四邻域拉普拉斯边缘检测算子if 4==Moldtypefor i=2:m-1for j=2:n-1temp=-4*pic(i,j)+pic(i-1,j)+pic(i+1,j)+pic(i,j-1)+pic(i,j+1);if temp>threshflapEdge(i,j)=255;elseflapEdge(i,j)=0;endendendend%八邻域拉普拉斯边缘检测算子if 8==Moldtypefor i=2:m-1for j=2:n-1temp=-8*pic(i,j)+pic(i-1,j)+pic(i+1,j)+pic(i,j-1)+pic(i,j+1)+pic(i-1, j-1)+pic(i+1,j+1)+pic(i+1,j-1)+pic(i-1,j+1);if temp>threshflapEdge(i,j)=255;elseflapEdge(i,j)=0;endendendend主函数:clear;I=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);C=double(B);t=60;Lapmodtype=8;%设置模板方式flapEdge=LaplaceEdge(C,Lapmodtype,t); fgrayLapedge=uint8(flapEdge);figure()imshow(fgrayLapedge),title('laplace边缘检测图像');图 6(4)Kirsch算子clearclcclose allI=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);figure(1)imshow(B,[])title('原始图象')%对图象进行均值滤波bw2=filter2(fspecial('average',3),B);%对图象进行高斯滤波bw3=filter2(fspecial('gaussian'),bw2);%利用小波变换对图象进行降噪处理[thr,sorh,keepapp]=ddencmp('den','wv',bw3); %获得除噪的缺省参数bw4=wdencmp('gbl',bw3,'sym4',2,thr,sorh,keepapp);%图象进行降噪处理%---------------------------------------------------------------------%提取图象边缘t=3000; %设定阈值bw5=double(bw4);[m,n]=size(bw5);g=zeros(m,n);d=zeros(1,8);%利用Kirsch算子进行边缘提取for i=2:m-1for j=2:n-1d(1)=(5*bw5(i-1,j-1)+5*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)-3*bw5(i,j+1 )-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1))^2;d(2)=((-3)*bw5(i-1,j-1)+5*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i, j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1))^2;d(3)=((-3)*bw5(i-1,j-1)-3*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i, j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)+5*bw5(i+1,j+1))^2;d(4)=((-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i, j+1)-3*bw5(i+1,j-1)+5*bw5(i+1,j)+5*bw5(i+1,j+1))^2;d(5)=((-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)-3*bw5(i,j-1)-3*bw5(i, j+1)+5*bw5(i+1,j-1)+5*bw5(i+1,j)+5*bw5(i+1,j+1))^2;d(6)=((-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i, j+1)+5*bw5(i+1,j-1)+5*bw5(i+1,j)-3*bw5(i+1,j+1))^2;d(7)=(5*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i,j+1 )+5*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1))^2;d(8)=(5*bw5(i-1,j-1)+5*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i,j+1 )-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1))^2;g(i,j) = max(d);endend%显示边缘提取后的图象for i=1:mfor j=1:nif g(i,j)>tbw5(i,j)=255;elsebw5(i,j)=0;endendendfigure(2)imshow(bw5,[])title('Kirsch ')图7(5)LoG和canny算子clear;I=imread('C:\Users\admin\Desktop\mao.jpg');B=rgb2gray(I);bw1=edge(B,'log',0.01);bw3=edge(B,'canny',0.1);figure;subplot(1,2,1);imshow(bw1,[]);title('loG边缘检测'); subplot(1,2,2);imshow(bw3,[]);title('canny边缘检测');图83、大津法实现图像分割clear;I=imread('C:\Users\admin\Desktop\cat.jpg');B=rgb2gray(I);T = graythresh(B);%求阈值BW = im2bw(B,T);%二值化imshow(BW,[])图9。
数字图像处理第三次实验(西南交大)

数字图像处理第二次实验注意提交实验报告的文件名格式(姓名+学号+实验报告二.doc)实验三灰度变换增强一、实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.了解灰度变换增强的Matlab实现方法3.掌握直方图灰度变换方法4.理解和掌握直方图原理和方法;二、实验内容1.线段上像素灰度分布读入灰度图像'',采用交互式操作,用improfile绘制一条线段的灰度值。
imshow(rgb2gray(imread('')))improfile读入RGB图像‘’,显示所选线段上红、绿、蓝颜色分量的分布imshow('')improfile2.直方图变换A)直方图显示在matlab环境中,程序首先读取图像'',然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread(''); %读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题读入图像‘’,在一个窗口中显示灰度级n=64,128和256的图像直方图。
I=imread('');imshow(I)figure,imhist(I,64)figure,imhist(I,128)figure,imhist(I,256)B)直方图灰度调节利用函数imadjust调解图像灰度范围,观察变换后的图像及其直方图的变化。
I=imread('');imshow(I)figure,imhist(I)J=imadjust(I,[ ],[0 1]);figure,imhist(J)figure,imshow(J)I=imread(''); imshow(I)figure,imhist(I)J=imadjust(I,[0 ],[ 1]); figure,imhist(J) figure,imshow(J)C)直方图均衡化在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
数字图像处理实验

数字图像处理实验实验总学时:10学时实验目的:本实验的目的是通过实验进一步理解和掌握数字图像处理原理和方法。
通过分析、实现现有的图像处理算法,学习和掌握常用的图像处理技术。
实验内容:数字图像处理的实验内容主要有三个方面:(1) 对图像灰度作某种变换,增强其中的有用信息,抑制无用信息,使图像的视在质量提高,以便于人眼观察、理解或用计算机对其作进一步的处理。
(2) 用某种特殊手段提取、描述和分析图像中所包含的某些特征和特殊的信息,主要的目的是便于计算机对图像作进一步的分析和理解,经常作为模式识别和计算机视觉的预处理。
这些特征包括很多方面,例如,图像的频域特性、灰度特征、边界特征等。
(3) 图像的变换,以便于图像的频域处理。
实验一图像的点处理实验内容及实验原理:1、灰度的线性变换灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换。
该线性灰度变换函数是一个一维线性函数:灰度变换方程为:其中参数为线性函数的斜率,函数的在y轴的截距,表示输入图像的灰度,表示输出图像的灰度。
要求:输入一幅图像,根据输入的斜率和截距进行线性变换,并显示。
2、灰度拉伸灰度拉伸和灰度线性变换相似。
不同之处在于它是分段线性变换。
表达如下:其中,(x1,y1)和(x2,y2)是分段函数的转折点。
要求:输入一幅图像,根据选择的转折点,进行灰度拉伸,显示变换后的图像。
3、灰度直方图灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标表示该灰度出现的频率(象素的个数)。
要求:输入一幅图像,显示它的灰度直方图,可以根据输入的参数(上限、下限)显示特定范围的灰度直方图。
4、直方图均衡:要求1 显示一幅图像pout.bmp的直方图;2 用直方图均衡对图像pout.bmp进行增强;3 显示增强后的图像。
实验二:数字图像的平滑实验内容及实验原理:1.用均值滤波器(即邻域平均法)去除图像中的噪声;2.用中值滤波器去除图像中的噪声3. 比较两种方法的处理结果 实验步骤:用原始图象lena.bmp 或cameraman.bmp 加产生的3%椒盐噪声图象合成一幅有噪声的图象并显示;1. 用均值滤波器去除图像中的噪声(选3x3窗口);2. f (x 0,y 0)=Med {f (x,y )∨x ∈[x 0−N,x 0+N ],y ∈[y 0−N,y 0+N ]}用中值滤波器去除图像中的噪声(选3x3窗口做中值滤波);3. 将两种处理方法的结果与原图比较,注意两种处理方法对边缘的影响。
数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。
a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。
s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b)b=double(b) 平移后的图像平移后的傅⾥叶频谱c=fft2(b);e=fftshift(c);l=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
数字图像处理实验报告实验三

代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
图5-2 添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-Miss Transform:击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3 击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
SE = strel('square',W)
构造一个正方形的矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像实验三图像增强实验三、图像增强一、实验目的(1)熟悉并学会使用MATLAB中图像增强的相关函数。
(2)掌握图像灰度修正、平滑去噪、锐化加强边缘和轮廓的方法,并编程实现。
二、实验主要仪器设备(1)台式机或笔记本电脑。
(2)MATLAB软件(含图像处理工具箱)。
注意:由于软件版本的缘故,软件的界面可能有所差异,读者可以根据实际安装的软件选择相关的命令。
(3)典型的灰度、彩色图像文件。
三、实验原理数码相机的曝光量指到达DC感光器件上的光线总量,用曝光值(EV)表示。
图像的过度曝光、曝光不足时,用曝光补偿调节曝光量,这种功能可修正自动曝光设置值为上升或下降几级。
例如,某些DC的EV调整范围为+3~0~-3。
尝试对同一景象进行正确曝光、过度曝光和曝光不足三种情况成像情况。
(1)将一幅图像视为一个二维矩阵,用MATLAB进行图像增强。
(2)利用MATLAB图像处理工具箱中的函数imread(读入),imshow(显示),imnoise(加噪),filter2(滤波)对图像进行去噪处理。
(3)图像灰度修正:灰度变换。
对不满意的图像通过线性或非线性灰度映射关系进行变换,其效果可以得到明显提高。
通过分析,会发现变换前后图像的直方图也发生相应的变化。
(4)图像平滑方法:领域平均、中值滤波。
分析图像降质的性质,区分平稳性还是非平稳型、加性还是乘性等,采用合适的去噪方法,可以去除或降低噪声对图像的影响。
从频率域看,平均操作在降低噪声的同时衰减了图像的高频分量,会影响图像细节的重现。
中值滤波对某些信号具有不变形,适用于消除图像中的突发干扰,但如果图像含有丰富的细节,则不宜使用。
(5)图像锐化方法:人眼对目标的边缘和轮廓较为敏感,对图像进行锐化,有助于突出图像的这些特征。
从频率域看,锐化提升了图像的高频分量。
四、实验内容MATLAB图像增强:①图像灰度修正;②图像平滑方法;③图像锐化方法。
五、实验步骤MATLAB图像增强。
(1)图像灰度修正。
测试图像为pout.tif、tire.tif。
读入一幅灰度级分布不协调的图像,分析其直方图。
根据直方图,设计灰度变换表达式,或调用imadjuct函数。
调整变换表达式的参数,直到显示图像的灰度级分布均衡为止。
(2)不均匀光照的校正。
测试图像为pout.tif。
采用分块处理函数blkproc和图像相减函数imsubtract校正图6.6存在的不均匀光照现象。
(3)三段线性变换增强。
测试图像为eight.tif。
选择合适的转折点,编程进行三段线性变换增强。
(4)图像平滑方法。
测试图像为eight.tif。
对有噪声图像或人为加入噪声的图像进行平滑处理。
根据噪声的类型,选择不同的去噪方法,如领域平均、中值滤波等方法,调用filter2、medfilt2函数,选择不同的滤波模板和参数,观测和分析各种去噪方法对不同噪声图像处理的去噪或降噪效果。
(5)图像锐化方法。
读入一幅边缘模糊地图像,利用罗伯茨梯度对图像进行4种锐化处理,比较各自效果。
六、实验程序(1)I = imread('pout.tif');subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);J = imadjust(I,[0.3 0.7],[]);subplot(2,2,3);imshow(J);subplot(2,2,4);imhist(J)(2)I=imread('rice.png');subplot(2,2,1);imshow(I);title('原始图像');J = imnoise(I,'salt &pepper', 0.1); subplot(2,2,2);imshow(J);title('加噪图像');blocks=blkproc(J,[128128],@estibackground);background=imresize(blocks,[256256],'bi linear');subplot(2,2,3);imshow(background);title('提取背景');I2=imsubtract(J,background);Iout=medfilt2(I2,[3 3]);subplot(2,2,4);imshow(Iout,[]);title('校正图像');functionbackgray=estibackground(x,thr) meanx=mean(x(:));stdx=std(x(:));minx=min(x(:));backgray=max(meanx-thr*stdx,minx); (3)f = imread('pout.tif');[M,N]=size(f);g=zeros(M,N);f=double(f);g=double(g);k1=min(min(f));k2=max(max(f));a=k1+50;b=k2-50;c=k1-30;d=k2+20;for i=1:Mfor j=1:Nif((f(i,j)>=a)&&((f(i,j))<b))g(i,j)=((d-c)/(b-a))*(f(i,j)-a)+c;endif(f(i,j)<a)g(i,j)=c;endif(f(i,j)>=b)g(i,j)=d;endendendfigure;subplot(1,2,1);imshow(f,[]);subplot(1,2,2);imshow(g,[]);(4)I = imread('eight.tif');subplot(2,3,1);imshow(I);title('原始图像');J=imnoise(I,'gaussian',0.01);subplot(2,3,2);imshow(J);title('高斯白噪声');h0=1/9.*[1 1 1 1 1 1 1 1 1];h1=[0.1 0.1 0.1;0.1 0.2 0.1;0.1 0.1 0.1]; h2=1/16.*[1 2 1;2 4 2;1 2 1];h3=1/8.*[1 1 1;1 0 1;1 1 1]; g0=filter2(h0,J);g1=filter2(h1,J);g2=filter2(h2,J);g3=filter2(h3,J);subplot(2,3,3);imshow(g0,[]);subplot(2,3,4);imshow(g1,[]);subplot(2,3,5);imshow(g2,[]);subplot(2,3,6);imshow(g3,[]);(5)I=imread('rice.png'); subplot(2,3,1);imshow(I);title('原始图像');B1=edge(I,'roberts',0.1); subplot(2,3,2);imshow(B1);title('0.1');B2=edge(I,'roberts',0.05); subplot(2,3,3);imshow(B2);title('0.05');B3=edge(I,'roberts',0.07); subplot(2,3,4);imshow(B3);title('0.07');B4=edge(I,'roberts',0.01); subplot(2,3,5);imshow(B4);title('0.01');七、实验结果(1)(3)(5)八、思考题(1)如何针对图像过暗、过亮、对比度不足设计灰度变换函数?灰度g与灰度f之间的关系为:g=a’+(b’-a’)(b-a)*(f-a),可见,如果b’-a’?b-a,则线性变换使得图像灰度范围增大,即对比度增大,图像会变得清晰;如果b’-a’<b-a,则使得图像灰度范围缩小,即对比度减小。
在曝光不足或过度的情况下,图像灰度可能会局限在一个很小的范围内,这时在显示器上看到的将是一个模糊不清、没有灰度层次的图像。
采用线性变换对图像的每一个像素灰度做线性拉伸,将有效地改善图像的视觉效果。
以曝光不足为例,选取b’-a’>b-a,则使曝光不充分的图像中黑的更黑,拜的更白,从而有效的提高图像灰度的对比度。
(2)比较同一种去噪方法对不同噪声处理的效果。
对于高斯噪声, 仍然是中值滤波的峰值信噪比最低, 总体变分的均方误差最小, 的情况一致所以,对于高斯噪声, 中值滤波的降噪效果不太理想, 而总体变分模型则取得比较好看出均值滤波的峰值信噪比最低,小波TV 的峰值信噪比比较接近而总体变分的均方误差仍为最小,对于高斯噪声, 线性均值滤波和TV去噪可以取得较好的去噪效果但对于椒盐噪声, 中值滤小波、总体变分(TV)的去噪平滑效果比较好其中,总体变分模型对两种噪声都取得了比较好的去噪效果, 它是现在图像平滑去噪和复原最流行的方法但仍然会丢失部分边界纹理信息。
(3)讨论用梯度法锐化图像的4种不同方法的应用范围。
Robert算子通常会在图像边缘附近的区域内产生较宽的响应,用此算子可以很准确的定位边缘,但是他对噪声的敏感程度也相对较强。
所以如果要用次算法进行锐化处理时,尤其要考虑到噪声的影响。
Sobel锐化算法也是图像微分锐化算法之一。
一幅图像进行Sobel算子锐化后,图像的灰度变化的幅度会有所增加。