数字图像处理上机实验三学习资料

合集下载

实验三_数字图像处理空域滤波

实验三_数字图像处理空域滤波

实验三空域滤波一实验目的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选取的越大,模糊越严重。

数字图像处理实验指导书

数字图像处理实验指导书

数字图像处理实验指导书前言数字图像处理技术的研究内容涉及工程学、计算机科学、信息科学、统计学、物理学、生物医学工程和社会科学等领域 它已成为高等理工院校电子信息工程、通信工程、生物医学工程、信号与信息处理等学科的一门重要的专业技术课。

作为人类获取信息的重要来源及利用信息的重要手段 数字图像处理技术被广泛应用于工业、农业、交通、气象、生物医学、军事、公安、机器人视觉、导航、多媒体信息网络通信等领域 给人类带来了巨大的经济和社会效益。

考虑到实际需要,在注重理论与实践的前提下,编写了这本实验指导资料。

本书以实践为基础,利用MATLAB 图像处理工具箱在数学运算和算法验证上的优势,结合教学实际,安排了熟悉matlab编程环境和图像基本操、图像变换、图像增强和滤波增强、图像滤波恢复、图像的压缩编码、图像的边缘检测和分割、图像分割后的目标对象的参数测量以及伪彩色图像处理等部分的相关实验8个。

通过具体的上机实践,激发同学们的学习激情在学习和实践中充分体验数字图像处理的内涵和它的魅力。

实验一熟悉matlab编程环境和图像基本操作一、实验目的及要求1.熟悉MATLAB编程环境2.熟悉图像的基本操作方法:读取、显示、保存、3.熟悉简单二值图像的创建以及图像的像素平移变换二、实验任务1.从电脑中读取一幅图片并显示,然后保存到一个制定路径2.创建一幅二值灰度图像,背景灰度级为0,图像中间矩形框的灰度级为255 3.对二值图像中矩形框的像素进行平移变换三、示例代码[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image',''); %读取图片I=[ipath,iname];image=imread(I);imshow(image); %显示图片imwrite(image, 'picture.jpg'); %保存图片bwimage=zeros(256,256,'uint8'); %创建二值图像bwimage([100:156],[100:156])=255;imshow(bwimage);[M,N]=size(bwimage);shiftdis=80; %定义像素平移量R=[1,0,shiftdis;0,1,shiftdis;0,0,1]; %定义平移矩阵temp=[0,0,1]'resultimage=zeros(M,N,'uint8');for i=100:156 %平移转换for j=100:156temp(1)=i;temp(2)=j;transdot=R*temp;resultimage(transdot(1),transdot(2))=bwimage(i,j);endendfigure;imshow(resultimage);实验二图像变换(傅里叶、离散余弦)一、实验目的及要求1.熟悉傅里叶变换和离散余弦变换的原理2.掌握傅里叶变换和离散余弦变换的算法和应用二、实验任务1.从电脑中读取一幅图片并显示2.将读取的彩色图片转换为灰度图3.对灰度图分别进行傅里叶变换和离散余弦变换三、示例代码[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image','');I=[ipath,iname];image=imread(I);imshow(image);figure;igray=rgb2gray(image); %将彩色图转换为灰度图imshow(igray,[]);figure;X=fft2(igray); %二维傅里叶变换X2=abs(X.^2);imshow(log(X2),[]);figure;Y=fftshift(X); %将低频点移动到中心Y=abs(Y);imshow(log(Y),[]);figure;imagecos=dct2(igray); %离散余弦变换imshow(log(abs(imagecos)))实验三图像的空域增强和滤波增强一、实验目的及要求1.熟悉图像的直方图计算方法和直方图均衡化原理2.熟悉图像的巴特沃斯滤波和理想低通滤波原理2.掌握图像的直方图计算的实现和直方图均衡化算法、图像的巴特沃斯滤波和理想低通滤波算法和应用二、实验任务1.从电脑中读取一幅图片并显示2.将读取的彩色图片转换为灰度图3.计算灰度图的统计直方图并进行直方图均衡化以增强图像4. 对灰度图进行维纳滤波三、示例代码[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image','');I=[ipath,iname];image=imread(I);imshow(image);figure;igray=rgb2gray(image); %彩色图转换为灰度图imshow(igray,[]);figure;imhist(igray); %计算灰度图的统计直方图figure;eq_igray=histeq(igray); %灰度统计直方图均衡化imshow(eq_igray);figure; %显示均衡化化后的直方图imhist(eq_igray);%巴特沃斯滤波和理想低通滤波[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image','');I=[ipath,iname];I1=imread(I);imshow(I1);title('原始图像');I1=rgb2gray(I1);figure;imshow(I1);I2=imnoise(I1,'salt & pepper');figure;imshow(I2);title('噪声图像');f=double(I2);g=fft2(f);%二维傅里叶变换g=fftshift(g);%转换数据矩阵[N1,N2]=size(g);n=2;d0=50;n1=fix(N1/2);n2=fix(N2/2);for i=1:N1for j=2:N2d=sqrt((i-n1)^2+(j-n2)^2);h=1/(1+0.414*(d/d0)^(2*n)); %计算巴特沃斯低通滤波转换函数result1(i,j)=h*g(i,j);if(g(i,j)>50) %进行理想低通滤波result2(i,j)=0;elseresult2(i,j)=g(i,j);endendendresult1=ifftshift(result1); %巴特沃斯低通滤波后反变换result2=ifftshift(result2); %理想低通滤波后反变换X2=ifft2(result1);X3=uint8(real(X2));figure;imshow(X3);title('Butterworth 滤波图像');X4=ifft2(result2);X5=uint8(real(X4));figure;imshow(X5);title('理想低通滤波器');实验四图像的滤波恢复一、实验目的及要求1.熟悉图像恢复的基本原理2.熟悉图像的维纳滤波恢复原理2.掌握图像的维纳滤波恢复算法和应用二、实验任务1.从电脑中读取一幅图片并显示2.将读取的彩色图片转换为灰度图3.人为对灰度图增加噪声4.利用维纳滤波算法对噪声图像进行恢复以提高显示质量三、示例代码d=15; %设定长度h=zeros(2*d+1,2*d+1);h(d+1,1:2*d+1)=1/(2*d); %设定函数h[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image','');I=[ipath,iname];f=imread(I);imshow(f);f=rgb2gray(f);figure;imshow(f);[m,n]=size(f); %计算图像大小(尺寸)fe=zeros(m+2*d,n+2*d); %扩增ffe(1:m,1:n)=f;he=zeros(m+2*d,n+2*d);he(1:2*d+1,1:2*d+1)=h; %扩增hF=fft2(fe);H=fft2(he);ns=5*rand(m+2*d,n+2*d); %产生噪声g=ifft2(F.*H)+ns; %产生噪声且加载噪声的图像G=fft2(g);K=0; %É设定K值F_est=((H.^2)./(H.^2+K)).*G./H; %维纳滤波f_est=real(ifft2(F_est)); %恢复后的图像imshow(f); 显示原始图像figure;imshow(g(d+1:m+d,d+1:n+d),[min(g(:)) max(g(:))]); %、显示模糊后加噪声的图像figure;imshow(f_est(1:m,1:n),[min(f_est(:)) max(f_est(:))]);%显示恢复后的图像实验五图像的压缩编码一、实验目的及要求1.熟悉图像的压缩编码的基本原理和方法2.在MATLAB实现用离散余弦变换(DCT)对图像进行压缩编码2.在MATLAB实现用行程编码(RLE)对图像进行压缩编码二、实验任务1.从电脑中读取一幅图片2.利用DCT对图像进行压缩编码3.利用RLE对图像进行压缩编码三、示例代码%%DCT图像压缩编码[iname,ipath]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'load image','');IPATH=[ipath,iname];I=imread(IPATH);I=rgb2gray(I);I=im2double(I); %将原图像转换为双精度数据类型T=dctmtx(8); %产生二维DCT变换矩阵B=blkproc(I,[8 8],'P1*x*P2',T,T'); %计算二维DCT 矩阵T,转置T’(函数p1*x*p2的参数)mask=[ 1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT系数,只保留DCT系数中左上角的10个B2=blkproc(B,[8 8],'P1.*x',mask); %只保留DCT变换的10个系数I2= blkproc(B2,[8,8],'P1*x*P2',T',T); %逆DCT,重构图像imshow(I);title('原图像'); %显示原图figure;imshow(I2);title('DCT压缩图像'); %显示压缩后的图像。

数字图像处理第三次实验(西南交大)

数字图像处理第三次实验(西南交大)

数字图像处理第二次实验注意提交实验报告的文件名格式(姓名+学号+实验报告二.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环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

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

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

数字图像处理实验三均值滤波、中值滤波的计算机实现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()函数,对原始图像转化为灰度图像之后再显示。

数字图像处理 实验报告(完整版)

数字图像处理 实验报告(完整版)

数字图像处理实验一 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显示出来观察图像的特征。

数字图像处理上机实验三

数字图像处理上机实验三

医学图像处理实验三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(注:文档可能无法思考全面,请浏览后下载,供参考。

数字图像处理上机实验报告 (三)

数字图像处理上机实验报告 (三)

图像处理上机实验报告第三次指导老师:许永忠组员姓名:龙斌王国健学号: 05102344(龙)05102350(王)班级:地物10-2班时间: 2013年6月中国矿业大学资源学院上机实验报告课程名称:数字图像处理班级地物10-2班组员姓名龙斌王国健组员学号0510234405102350指导教师许永忠日期2013.05.26第15 周星期日第7,8节上机时数2学时实验名称数字图像处理PS的简单应用实验目的1.学会进行一些简单的字体特效制作以及简单的图像合成。

2.学会辨别细微的真假变化。

实验内容1.继续熟悉ps的基本运用,理解ps技术在生活中的重要性;2.用ps技术合成一张自己的图片;3.比较两个三角形出现差异的原因。

实验步骤1. 照片合成a.选择一张风景图(图1)和自己一张生活照(图2),用钢笔工具沿着图2中的人物作路径,完成后ctrl+enter转化为选区,然后ctrl+j复制选区;图1 图2b.拖动选区至图1,ctrl+t调整选区大小,使选区下的人物在图1中的一个合适位置和比例;c.作水中倒影。

ctrl+j复制刚刚调整好的选区,再ctrl+t,选择垂直翻转,然后调整至适当的位置,使人物倒影于水中;d.选择“滤镜”—“扭曲”—“波纹”,使人物图像有轻微的水波荡漾状扭曲,然后调整其透明度,使倒影更逼真;e.做彩虹。

Ctrl+n新建一个空白图层,背景为透明。

选择渐变工具,对渐变色进行调整,从左到右依次为“赤橙黄绿青蓝紫”渐变;f.在图层中作小小拖动,然后选择滤镜—扭曲—极坐标即完成。

g.把“彩虹”拖至图层1,同理ctrl+t调整大小和位置,并与图层1进行滤色叠加,使彩虹颜色变淡,然后与人物倒影一样对彩虹做倒影即可;h.ctrl+s保存,最后效果如图3合图4。

j.同理照一张有老鹰,一张含老虎和一张自己图片,分别做选区抠出其中的老虎,老鹰和自己,然后都拖到草原中,再用橡皮工具进行适当擦除,使其充分与背景融合,再ctrl+l调整一下色相饱和度即可,成果见图5.1.龙斌合成成果图图32.王国健合成成果图2.三角形的比较有三种方法可比较出现这种情况的原因:第一种:图形直观比较:把上面的三角形按其边缘复制,并与下面三角形(有空白的)重合,我们会很容易的发现:虽然两个三角形的底边和高相等,但他们的斜边并不相等,即有空白正方形的三角形斜边并不是直线,而是一条微向上凸起的曲线(但由于很小,肉眼较难分辨),而它凸起的那小部分面积恰好就是空白正方形的面积。

数字图像处理实验报告实验三

数字图像处理实验报告实验三
2.设计一个检测图3-2中边缘的程序,要求结果类似图3-3,并附原理说明
代码:
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)
构造一个正方形的矩阵。

数字图像处理实验程序3傅里叶变换,小波变换

数字图像处理实验程序3傅里叶变换,小波变换

数字图像处理实验报告班级:11研信息1班**: ***学号:***********实验三图像的傅立叶变换一、实验目的1.了解图像变换的意义和手段;2.熟悉傅里叶变换的基本性质;3.熟练掌握FFT的方法及应用;4.通过实验了解二维频谱的分布特点;5.通过本实验掌握编程实现数字图像的傅立叶变换。

二、实验原理1.应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2.傅立叶(Fourier)变换的定义对于二维信号,二维连续Fourier变换定义为:二维离散傅立叶变换为:图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。

实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

三,实验内容1.根据二维离散Fourier变换的定义编写程序2.实现图象的变换3.画出图象的频谱图。

实验图像:任选四,实验要求1、实验之前要预习2、独立完成程序的编写3、写出实验报告。

4、实验每组1人五,实验程序及实验结果分析1.数字图像处理的傅里叶变换实验的程序代码:clear allclose allA=imread('xingyueye.jpg');%读入并且显示出一个图像文件subplot(1,2,1);imshow(A);title('原始的图像');%显示原始图像作为对照if length(size(A))==3A=rgb2gray(A);endsubplot(1,2,2);imshow(A);title('灰度图像');%对灰度图像进行傅里叶变换并输出频谱A2=fft2(A);A2=fftshift(A2);%将图像进行二维傅里叶变换figure,imshow(log(abs(A2)+1),[0,12]);%显示傅里叶变换后的图像title('傅里叶变换后的图像');下面是实验用的原图像: tangwei.jpg下面是实验的matlab运行结果图:(灰度处理)下面是实验的matlab运行结果图:(傅里叶图像变换)下面是实验用的原图像: fengjing.jpg下面是实验的matlab运行结果图:(灰度处理)下面是实验的matlab运行结果图:(傅里叶图像变换) 六,思考题1.傅里叶变换有哪些重要的性质? 答:①线性性,②对称性,③折叠型,④尺度变换性,⑤时移性,⑥频移性,⑦时域微分性,2.图像的二维频谱在显示和处理时应注意什么?答:我在做实验的时候,把彩色图像用傅里叶变换后发现出不了结果,但是黑白图像或者彩色图像经过灰度处理就出来了图像,这些细节要在以后的实验中多多注意。

数字图像处理实验

数字图像处理实验

图像处理实验指导书图像是一种重要的信息源,图像处理的最终目的就是要帮助人类理解信息的内涵。

数字图像处理技术的研究内容涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘学科。

随着计算机的迅猛发展,图像处理技术已经广泛应用于各个领域。

“数字图像处理”课程内容主要包括利用计算机对图像信息进行图像采集、图像变换、图像增强与恢复、图像分割、图像分析与理解、图像压缩、图像传输等各种处理的基本理论、典型方法和实用技术。

通过本课程的学习,可使学生掌握有关图像处理与图像分析的基本概念、基础理论、实用技术和典型方法。

通过该系列实验教案与实践,了解图像增强、图像分割、图像理解和分析算法的物理意义;应用于图像处理的计算机软件技术平台很多,如VC++、MATLAB等。

本实验指导书选用MATLAB做实验平台,MATLAB是一种基于向量<数组)而不是标量的高级程序语言,而数字图像实际上就是一组有序的离散数据,从而MATLAB从本质上就可以提供对图像处理的技术支持。

实验1:图像预处理实验一、实验目的与要求:目的:通过本次实验,学生可以掌握图像读取、显示和保存的方法,要求:上机运行,调试通过。

二、实验方案:1)对附录中的练习1~3、进行上机运行和调试。

2)对上述练习,改变一些函数的参数,观察运行结果的变化。

三、实验结果与数据处理对每个练习,要求学生获得相应的实验结果。

四、结论可以是对某些MATLAB函数如何使用的认识,也可以是学生的实验后的心得体会。

五、问题与讨论1)对实验中遇到的问题,进行讨论。

实验2、图像增强一、实验目的1掌握灰度直方图的概念及其计算方法;2熟练掌握直方图均衡化过程;二、实验原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。

图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。

数字图像处理实验三

数字图像处理实验三

数字图像处理—实验三一.实验内容:⑴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⼯具箱的使⽤实验⽬的:11:了解matlab语⾔,熟悉并掌握matlab相关的处理语句。

2:了解matlab在图像处理中的优缺点。

3 熟悉matlab的使⽤技巧,能⽤matlab熟悉的对数字图像进⾏各种处理。

1 将⼀幅灰度图像转换成索引⾊图像。

I=imread('ngc4024m.tif');X=grayslice(I,16);imshow(I)figure,imshow(X,hot(16))2:对⼀副图像进⾏⼆值化处理。

load treesBW=im2bw(X,map,0.4);imshow(X,map)figure,imshow(BW)3:将索引⾊图像转化成灰度图像。

load trees I=ind2gray(X,map);imshow(X,map)figure,imshow(I)4:显⽰⼀幅图像。

load clown image(10,10,X) colormap(map)试验⼆图像变换实验⽬的:1 熟悉掌握DFT和DCT变换的matlab实现。

2 利⽤matlab试验DFT和DCT的变换,求出图像的频谱。

1.⼆维离散傅⾥叶变换的旋转型。

I=zeros(256,256);>> I(28:228,108:148)=1;>> imshow(I)J=fft2(I);>> F=abs(J);>> J1=fftshift(F);figure>> imshow(J1,[5 50])>> I(28:228,108:148)=1;>> J=imrotate(I,315,'bilinear','crop'); >>figure >> imshow(J)J1=fft2(J);>> F=abs(J1);>> J2=fftshift(F);figure>> imshow(J2,[5 50])2.图像的傅⾥叶频谱。

实验三图像分析实验——图像分割、形态学及边缘与轮廓分析

实验三图像分析实验——图像分割、形态学及边缘与轮廓分析

实验三图像分析实验——图像分割、形态学及边缘与轮廓分析一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、熟悉图像形态学分析的基本原理,观察不同形态学方法处理的结果;2、熟悉图像阈值分割、区域生长、投影及差影检测和模板匹配的基本原理,观察处理的结果;3、熟悉图像边缘检测、Hough平行线检测、轮廓提取及跟踪和种子填充的基本原理,观察处理的结果;4、了解图像矩、空穴检测、骨架提取的基本原理,观察处理的结果。

三、实验原理本次实验侧重于演示观察,由于内容繁多,并且系统中已有部分实验项目的原理说明,因此实验原理及编程实现步骤这里不再详细叙述,有兴趣的同学可以查阅数字图像处理方面的有关书籍。

四、实验内容1、图像形态学分析内容包括:图像膨胀、图像腐蚀、开运算、闭运算和图像细化针对二值图像进行处理,有文字说明,实验步骤中将详细介绍其使用方法。

2、图像分割内容包括:阈值分割、区域生长、投影检测、差影检测和模板匹配阈值分割:支持灰度图像。

从图库中选择图像分割中的源图, 然后执行图像分析→图像分割→阈值分割, 比较原图和分割后的图, 对照直方图分析阈值分割的特点。

对源图再执行一次图像变换→点运算→阈值变换, 比较分析阈值变换和阈值分割的结果。

区域生长:支持灰度图像。

操作方法与阈值分割类似,比较分析其与阈值分割的不同。

投影检测:只支持二值图像。

从图库中选择投影检测中的源图, 然后执行图像分析→投影检测→水平投影, 然后再垂直投影, 记录下检测部分的水平和垂直方向的位置。

如有必要, 在检测之前, 对图像进行平滑消噪。

差影检测:支持灰度图像。

从图库中选择图像合成中的源图, 然后执行图像分析→图像合成→图像相减, 在弹出的文件对话框中选择图库图像合成中的模板图像,观察分析差影结果。

模板匹配:支持灰度图像。

从图库中选择模板匹配中的源图, 然后执行图像分析→模式识别→模板匹配, 在弹出的文件对话框中选择图库模板匹配中的模板图像, 观察分析结果。

《数字图像处理》实验指导书

《数字图像处理》实验指导书

数字图像处理实验指导书电气信息工程系实验中心2008年8月目 录实验一、数字图像获取实验二、图像的傅立叶变换实验三、图像增强实验四、图像压缩实验一、数字图像获取一、实验目的1.掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法;2.修改图像的存储格式。

二、实验仪器1.计算机;2.扫描仪(或数码相机、数字摄像机)及其驱动程序盘;3.图像处理软件(画图,photoshop, Microsoft photo edit等);4.记录用的笔、纸。

三、 实验内容用扫描仪获取图像也是图像的数字化过程的方法之一,扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。

扫描仪的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。

各类扫描仪都标明了它的光学分辨率和最大分辨率。

分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。

扫描仪工作时,首先由光源将光线照在欲输入的图稿上,产生表示图像特征的反射光(反射稿)或透射光(透射稿)。

光学系统采集这些光线,将其聚焦在CCD上,由CCD将光信号转换为电信号,然后由电路部分对这些信号进行A/D转换及处理,产生对应的数字信号输送给计算机。

当机械传动机构在控制电路的控制下,带动装有光学系统和CCD的扫描头与图稿进行相对运动,将图稿全部扫描一遍,一幅完整的图像就输入到计算机中去了。

图1.1扫描仪的工作原理扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。

为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。

《数字图像处理》课内实验_new

《数字图像处理》课内实验_new

《数字图像处理》课内实验实验一 直方图均衡一、实验题目:直方图均衡二、实验目的:在学习图像直方图的概念、计算方法、性质和相关应用基础上,生成、绘制图像的直方图,并应用MATLAB 编程实现图像直方图均衡化程序。

三、实验内容:(1)计算并绘制图像直方图;(2)编程实现图像的直方图均衡化处理,显示均衡前后的直方图和图像; 四、预备知识:(1)熟悉图像读写和显示;(2)理解图像直方图的概念及用途;(3)理解直方图均衡化的概念及应用背景; 五、实验原理:在对图像进行处理之前,了解图像整体或局部的灰度分布情况非常必要。

对图像的灰度分布进行分析的重要手段就是建立图像的灰度直方图(DensityHistogram ),利用图像灰度直方图,可以直观地看出图像中的像素亮度分布情况;通过直方图均衡化,可以对图像的质量进行调整。

(1)生成并绘制图像的直方图假设一幅数字图像的像素总数为N ,在范围[0,G]内共有L 个灰度级,其直方图定义为离散函数()k k n r h =,其中,r k 是区间[0,G]内的第K 级的亮度,n k是灰度级为r k 的图像中的像素数。

对于uint 8类图像,G 的值为255;对于uint 16类图像,G 的值为65535;对于double 类图像,G 的值为1.0。

记住,MATLAB 中的索引不能为0,故r 1相当于灰度级0,r 2相当于灰度级1,如此等等,r L 相当于灰度级G 。

其中,uint8类图像或uint 16类图像中G=L-1。

通常,会用到归一化直方图,即用所有元素h(r k )除以图像中的像素总数N 所得到的图形:P(r k)表示灰度级r k出现的频数。

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,其调用格式为:imhist(I,b)[COUNTS,X] = imhist(I)其中I为输入图像,b为指定的灰度级数目,默认值为256。

[COUNTS,X]=imhist(…)返回直方图统计的数据和相应的灰度级向量X。

数字图像处理知识及实验

数字图像处理知识及实验

数字图像处理期末复习重点第一章1,数字图像的应用领域:(1)医学;x-ray,超声波成像,CT(2) 遥感;农作物估产,地质勘探,天气预报(3) 工业;无损探伤,外观自动检查(4) 军事公安:巡航导弹地形识别,指纹识别,手迹鉴定2,数字图像与模拟图像的异同点模拟图像:通过各种物理量的强弱变化来记录图像的各点的灰度信息;光照的位置和强度连续变化。

数字图像:用数字来记录图像上的灰度信息。

3,数字图像处理的特点:图像数据量庞大;精度高;再现性好第二章1,人眼视觉原理课本P23锥状细胞:对高照度敏感;白昼视觉。

杆状细胞:对低照度敏感;夜视觉(低照明时,亮度辨别较差(韦伯比大);高照明时,亮度辨别力好(韦伯比小)2,名词解释:(1)马赫带效应:当亮度发生跃变时,视觉上会感到边缘的亮侧更亮些,暗侧更暗些。

在图像轮廓部分发生的主观亮度对比度加强的现象,又称为边缘对比效应。

(2)同时对比效应:眼睛对物体的主观亮度强烈依赖于物体自身的背景。

灰色物体周围是黑色背景时,主观亮度增强;当周围背景变明亮时,主观亮度会减弱。

3,图像的获取步骤及其影响因素等 P30-34步骤:(1)采样,影响因素:空间分辨率采样间隔越小,像素数越多,空间分辨率高,图像质量好,但数据量大。

(2)量化,影响因素:灰度级分辨率量化等级越多,图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;4,数字图像的表示 P31(1)数字图像表示方式二维离散亮度函数: f (x, y) 二维矩阵: A [m ,n](2)数字图像的数据量即图像的大小。

存储数字图像所需的比特数b=M×N×k(此题有可能是直接给出k,也有可能告诉你灰度级数为256,则,k=8)课本P33 (3)数字图像分类及其特点:二值图像:每个像素只能是黑或白,没有中间的过渡,又称为黑白图像。

二值图像的像素值为0或1。

灰度图像:灰度级数大于2的图像。

但它不包含彩色信息。

彩色图像:每个像素由RGB三个分量构成,其中RGB是由不同的灰度级来描述。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理上机实验三医学图像处理实验三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。

相关文档
最新文档