数字图像实验三
数字图像处理实验三中值滤波和均值滤波实验报告
数字图像处理实验三均值滤波、中值滤波的计算机实现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、熟练掌握图像读、写、显示、类型转换等matlab函数的用法。
二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。
2、编程实现空间分辨率变化的效果。
三、实验原理1、图像读、写、显示I=imread(‘image.jpg’)Imview(I)Imshow(I)Imwrite(I,’wodeimage.jpg’)2、图像类型转换I=mat2gray(A,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵A转化为灰度图像I,amin对应灰度0,amax对应1,也可以不指定该区间。
[x,map]=gray2ind(I,n);按指定的灰度级n将灰度图像转化为索引图像,n默认为64I=ind2gray(x,map);索引图像转化为灰度图像I=grb2gray(RGB);真彩色图像转化为灰度图像[x,map]=rgb2ind(RGB);真彩色图像转化为索引图像RGB=ind2rgb(x,map);索引图像转化为真彩色图像BW=im2bw(I,level);将灰度图像转化为二值图像,level取值在[0,1]之间BW=im2bw(x,map,level);将索引图像转化为二值图像,level取值在[0,1]之间BW=im2bw(RGB,level);将真彩色图像转化为二值图像,level取值在[0,1]之间四、实验代码及结果1、in=imread('peppers.png');i=rgb2gray(in);[x,map]=gray2ind(i,128);subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map)2、%空间分辨率变化的效果clc,close all,cleari=imread('cameraman.tif');i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel('256x256')subplot(222),imshow(i1),xlabel('128x128')subplot(223),imshow(i2),xlabel('64x64')subplot(224),imshow(i3),xlabel('32x32')256 x 256128 x 12864 x 6432 x 32实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb 命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread 命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。
数字图像处理实验报告
数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。
本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。
实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。
实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。
在Python中,我们可以使用OpenCV库来实现图像的读取和显示。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。
常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
数字图像三、四实验报告
实验项目名称 所属课程名称 实 验 类 型 实 验 日 期 图像的平滑和锐化 数字图像处理 验证型实验 2011.10.19
班 学 姓 成
级 号 名 绩
xxxxx xxxxxxx xxxxxxx
一、实验概述: 实验概述: 【实验目的】 1. 掌握常见的图像噪声种类。 2. 掌握图像的线性滤波和中值滤波的处理。 3. 掌握用梯度算子和拉式算子对图像进行锐化。 实验原理】 【实验原理】 MATLAB 对图像的处理提供了很多方便, 本实验就是调用相应的图像处理函数编写 出正确可行的程序并经过调试和运行来完成了实验的要求。 实验环境】 【实验环境】 MATLAB 7.4.0 实验内容: 二、实验内容: 实验方案】 【实验方案】 首先要明确实验要求我们实现的图像处理的效果, 然后查找正确的图像处理函数 并编写程序,最后完成程序的调试和验证。 实验过程】 实验步骤、记录、数据、分析) (实验步骤 【实验过程】 实验步骤、记录、数据、分析) ( 1. 对图像 lena512.bmp 分别叠加零均值高斯噪声、椒盐噪声和乘性噪声,利用线 性滤波法和中值滤波法对图像进行滤波,显示叠加噪声前后的图像和滤波后的 图像,比较滤波效果 2. 利用二个低通邻域平均模板(3×3 和 9×9)对图像 lena512.bmp 进行平滑,验 证模板尺寸对图象的模糊效果的影响 3. 利用一个低通模板对一幅有噪图像 lena512.bmp(GAUSS 白噪声)进行滤波,检 验两种滤波模板(分别使用一个 5×5 的线性邻域平均模板和一个非线性模 板:3×5 中值滤波器)对噪声的滤波效果。 4. 选择一个经过低通滤波器滤波的模糊图象,利用 sobel 和 prewitt 水平边缘增 强高通滤波器(模板)对其进行高通滤波图象边缘增强,验证模板的滤波效果。 实验结论 (结果) 结论】 【实验结论】 结果) 的实验结果: (1) 的实验结果: 1(如下图) Figure 1(如下图):
数字图像处理实验三
数字图像处理—实验三一.实验内容:⑴5⨯5区域的邻域平均法⑵5⨯5中值滤波法二.实验目的:了解各种平滑处理技术的特点和用途,掌握平滑技术的仿真与实现方法。
学会用Matlab中的下列函数对输入图像进行上述2类运算。
感受不同平滑处理方法对最终图像效果的影响。
nlfilter;mean2;std2;fspecial;filter2;medfilt2;imnoise三.实验步骤:1.仔细阅读Matlab帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。
2.将test3_1.jpg图像文件读入Matlab,用nlfilter对其进行5⨯5邻域平均和计算邻域标准差。
显示邻域平均处理后的结果,以及邻域标准差图像。
clc;clear;figure;subplot(1,3,1);i1=imread('test3_1.jpg');i1=im2double(i1);imshow(i1);title('原图像');subplot(1,3,2);T1=nlfilter(i1,[5 5],@mean2);imshow(T1);title('邻域平均处理后结果');subplot(1,3,3);T2=nlfilter(i1,[5 5],@std2);imshow(T2);title('邻域标准差图像');3.在test3_1.jpg图像中添加均值为0,方差为0.02的高斯噪声,对噪声污染后的图像用nlfilter进行5⨯5邻域平均。
显示处理后的结果。
(使用imnoise 命令)clc;clear;figure;subplot(1,3,1);i1=imread('test3_1.jpg');i1=im2double(i1);imshow(i1);title('原图像');subplot(1,3,2);T1=imnoise(i1,'gaussian',0,0.2);imshow(T1);title('加高斯噪声');subplot(1,3,3);T2=nlfilter(i1,[5 5],@mean2);imshow(T2);title('处理后结果');4.将test3_2.jpg图像文件读入Matlab,用fspecial函数生成一5⨯5邻域平均窗函数,再用filter2函数求邻域平均,试比较与用nlfilter 函数求邻域平均的速度。
数字图像处理 实验报告(完整版)
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像实验总结.ppt
•
end
• end
• end
• figure;
• imshow(I1)
实验结果
实验分析
从伪彩色变换后图中可以看出,和原来的彩色图像差距较 大,这是因为原图像每个像素点处的彩色三通道值都不尽 相同,色彩较多,而且有强有弱。伪彩色变换只是在某些 灰度区间范围规定颜色,所以图像不是很生动。
三 图像分割
人眼看上去两种格式图像差距不是很明显,但是 文件大小差距很大,从九百K缩小到了三十K.
实验中出现问题
1. 提示图片不存在。 将图像和M文件放在同一个文件夹里面。 2. 命令窗口出现许多数字,影响图像显示速度。 读取图像时程序语句后面加分号,则不用在命令窗口显示 图像矩阵
实验二 图像增强
实验内容: 将给定的图像进行增强处理,要求至少使 用线性变换增强、对数变换增强、指数变 换增强及伪彩色增强,并分析增强后的视 觉效果。
• figure;
• imshow(I);
• a=3; b=50; c=20;
• I1=a*(I-b)+c;
%图像线性灰度变换
• figure;
• imshow(I1);
• itle(‘线性增强后图像’);
实验结果及分析
实验分析
从图中可以看出,图像整体上比增强前要亮许多,整体对 比度的值加大,提高了画面的显示效果。
• figure;
• imshow(I);
• I=double(I);
• a=50; b=10; c=10;
• [m,n]=size(I);
• for i=1:m
• for j=1:n
•
I(i,j)=a*log(I(i,j)+b)+c;
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、熟悉图像形态学分析的基本原理,观察不同形态学方法处理的结果;2、熟悉图像阈值分割、区域生长、投影及差影检测和模板匹配的基本原理,观察处理的结果;3、熟悉图像边缘检测、Hough平行线检测、轮廓提取及跟踪和种子填充的基本原理,观察处理的结果;4、了解图像矩、空穴检测、骨架提取的基本原理,观察处理的结果。
三、实验原理本次实验侧重于演示观察,由于内容繁多,并且系统中已有部分实验项目的原理说明,因此实验原理及编程实现步骤这里不再详细叙述,有兴趣的同学可以查阅数字图像处理方面的有关书籍。
四、实验内容1、图像形态学分析内容包括:图像膨胀、图像腐蚀、开运算、闭运算和图像细化针对二值图像进行处理,有文字说明,实验步骤中将详细介绍其使用方法。
2、图像分割内容包括:阈值分割、区域生长、投影检测、差影检测和模板匹配阈值分割:支持灰度图像。
从图库中选择图像分割中的源图, 然后执行图像分析→图像分割→阈值分割, 比较原图和分割后的图, 对照直方图分析阈值分割的特点。
对源图再执行一次图像变换→点运算→阈值变换, 比较分析阈值变换和阈值分割的结果。
区域生长:支持灰度图像。
操作方法与阈值分割类似,比较分析其与阈值分割的不同。
投影检测:只支持二值图像。
从图库中选择投影检测中的源图, 然后执行图像分析→投影检测→水平投影, 然后再垂直投影, 记录下检测部分的水平和垂直方向的位置。
如有必要, 在检测之前, 对图像进行平滑消噪。
差影检测:支持灰度图像。
从图库中选择图像合成中的源图, 然后执行图像分析→图像合成→图像相减, 在弹出的文件对话框中选择图库图像合成中的模板图像,观察分析差影结果。
模板匹配:支持灰度图像。
从图库中选择模板匹配中的源图, 然后执行图像分析→模式识别→模板匹配, 在弹出的文件对话框中选择图库模板匹配中的模板图像, 观察分析结果。
拉普拉斯算子实现数字图像的锐化实验三
福建农林大学计算机与信息学院实验报告系: 计算机与信息学院 专业: 计算机与科学技术 年级: 10级3班 姓名: 学号: 实验室号___ ____ 计算机号 116实验时间: 2011.5.20 指导教师签字: 成绩: 报告退发 (订正 、 重做)实验三 空间域数字图像的平滑与锐化1. 实验目的和要求掌握空间域数字图像的平滑与锐化。
2. 实验内容和原理(1) 利用加权平均掩模实现数字图像的平滑;(2) 利用拉普拉斯算子实现数字图像的锐化3. 实验环境硬件:一般PC 机操作系统:WindowsXP编程平台:MATLAB 或高级语言4. 算法描述及实验步骤算法描述:拉普拉斯算子是与一个边缘方向无关的边缘点检测算子。
它对孤立像素的响应要比对边缘或线的响应更强烈, 因此使用该算子进行图像锐化之前需要对图像作平滑处理。
拉普拉斯算子是一种二阶微分算子一个连续的二元函数f (x , y ) , 其拉普拉斯运算定义为22222ff f x y ∇∂∂=+∂∂对于数字图像,拉普拉斯算子可以简化为g(i,j)= 8f(i,j)- f(i+1,j)- f(i-1,j)- f(i,j+1)- f(i,j-1)上面的表达式可以表示为卷积的形式。
即(,)(,)(,)k ir k s i g i j f i r j s H r s =-=-=--∑∑表达式中的i ,j=0,1,2….N-1;k=1。
,i=1,H (r,s )取样如下式子010*******H - ⎡⎤⎢⎥=- -⎢⎥- ⎢⎥⎣⎦在图像锐化处理过程中,函数的拉普拉斯算子也是借组模板来实现的。
模板的取样将直接影响锐化的效果,常用的模板有。
010141010G x - ⎡⎤⎢⎥=- -⎢⎥- ⎢⎥⎣⎦Gx=[010;1-41;010]Gx= [111;1-81;111]Gx= [-1-1-1;-18-1-1-1-1]实验步骤:一.定义一个八领域,此实验我们用到了第四个并且定义一个算子所用到的算子为g=[1 2 1;2 4 2;1 2 1]二.实验通过公式Y(i,j)=X(i,j)*g(2,2)+X(i+1,j)*g(3,2)+X(i,j+1)*g(2,3)+X(i+1,j+1)*g(3,3)+X(i+1,j-1)*g(3,1)+X(i-1,j+1)*g(1,3)+X(i-1,j-1)*g(1,1)+X(i-1,j)*g(1,2)+X(i,j-1)*g(2,1);来计算模糊后的效果。
《数字图像分析》实验
《数字图像分析》实验一实验内容:实验一选定一张N×N的车牌彩色图像,进行256级的灰度处理。
实验二将N×N的灰度图像统计出直方图。
实验三将256级灰度图像均衡化(图像增强)。
实验四用Sobel算子(或者自己比较熟悉的算法)进行边缘处理。
实验五用模版匹配法寻找车牌位置,截取出车牌图像。
实验六将截取的车牌灰度图像二值化。
二实验要求:1.分别写出每个实验的实验分析2.编写并运行程序3.进行封装4.13周提交电子版的实验报告,包括:实验分析,执行文件,源程序1.4 车牌识别系统简介系统构架图如下:车辆牌照识别系统一般可顺序地分为车辆图像获取,车辆牌照子图像定位与分割,字符识别(OCR)三大部分。
如图1-3所示。
在第一部分图像捕捉与获取中,主要通过CCD 摄像头与计算机的视频捕捉卡直接相连来完成图像采集,可以实时在监控图像中抓取到含有车辆的图像。
该部分功能可简单调用计算机视频捕捉卡厂商提供的各种软件开发包工具即可实现。
车辆牌照识别系统(LPR)的关键在于第二和第三部分。
牌照定位又决定其后的车牌字符识别,因此牌照定位是车牌识别系统的关键的关键,牌照定位就是从包含整个车辆的图像中找到牌照区域的位置。
目前,已经提出了很多种方法,一个共同的出发点是:通过牌照区域图1-3 车辆牌照识别 (LPR) 系统流程图图 1-2 车牌识别系统总构架图的特征来判断牌照。
利用的车牌特征主要包括:①车牌区域内的边缘灰度直方图统计特征。
车牌区域内的边缘灰度直方图具有两个明显且分离的分布中心。
②车牌的几何特征,即车牌的高、宽、高定比在一定的范围内。
③车牌区域的灰度分布特征,穿过车牌的水平直线其灰度呈现连续的峰、谷、峰的分布。
④车牌区域水平或垂直投影特征。
车牌区域水平或垂直投影呈现连续的峰、谷、峰的分布。
⑤车牌形状特征.字符排列格式特征。
车牌有矩形边框.字符位于矩形框中且有间隔。
⑥频谱特征,即对图像做行或列的DFT变换.其频谱图中包含了车牌的位置信息。
数字图像实验报告
数字图像实验报告学院:计算机与信息工程学院专业:通信工程学号:1008224072姓名:张清峰实验一图像增强—灰度变换专业:通信工程学号:1008224072姓名:张清峰一、实验目的:1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f 在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
三、实验内容:1、图像数据读出2、计算并分析图像直方图3、利用直接灰度变换法对图像进行灰度变换下面给出灰度变化的MATLAB程序f=imread('C:\ch17\tu\6.jpg');g=imhist(f,256);imshow(g) %显示其直方图k=im2uint8(mat2gray(log(1+double(f))));figure,imshow(k) %使用对数变换减小动态范围。
- 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算子锐化后,图像的灰度变化的幅度会有所增加。