数字图像的边界提取
数字图像处理-第六章图像分割与分析

设平面上有若干点,过每点的直线族分别对应于极坐标上的 一条正弦曲线。若这些正弦曲线有共同的交点(ρ′,θ′),如图 (e),则这些点共线,且对应的直线方程为 ρ′=xcosθ′+ysinθ′
这就是Hough变换检测直线的原理。
y
A 60
B
F E
C
G 60
D 120
x
x-y空间的边缘点
D
120
C
w1 w 2 w3
可以指定模板为:
w
4
w5
w
6
w 7 w 8 w 9
9
模板响应记为: R | w i z i | i1
输出响应R>T时对应孤立点。
888 8 128 8 888
图像
-1 -1 -1 -1 8 -1 -1 -1 -1
模板
R = (-1 * 8 * 8 + 128 * 8) / 9 = (120 * 8) / 9 = 960 / 9 = 106
3、阈值分割法(相似性分割)
根据图像像素灰度值的相似性
通过选择阈值,找到灰度值相似的区域 区域的外轮廓就是对象的边
阈值分割法(thresholding)的基本思想: 确定一个合适的阈值T(阈值选定的好坏是此方法成败 的关键)。 将大于等于阈值的像素作为物体或背景,生成一个二值 图像。
f(x0,y0) T
2h
r2 2 4
exp
r2 2 2
是一个轴对称函数:
2h
-σ
σ
0
由图可见,这个函数 在r=±σ处有过零点,在 r │r│<σ时为正,在│r│>σ 时为负。
由于图像的形状,马尔算子有时被称为墨西哥草帽函数。 用▽2h对图像做卷积,等价于先对图像做高斯平滑,然后再用▽2对 图像做卷积。 因为▽2h的平滑性质能减少噪声的影响,所以当边缘模糊或噪声较 大时,利用▽2h检测过零点能提供较可靠的边缘位置。
三维边界提取算法

三维边界提取算法
三维边界提取算法是一种用于计算机图像领域的算法,它可以在
三维模型中自动识别并提取出边界。
这种算法在很多三维图像处理和
计算机辅助设计(CAD)应用中都有很广泛的应用。
下面是三维边界提取算法的具体步骤:
第一步,加载三维模型。
首先要从磁盘或者网络中把三维模型文
件读入内存。
常见的三维模型格式有STL、OBJ和PLY等。
第二步,计算凸壳。
凸壳是指包含了整个三维模型的最小凸多面体。
计算凸壳的算法有很多种,比较常用的有旋转卡壳算法和快包算法。
第三步,计算边界点。
在得到凸壳后,就可以计算出三维模型的
边界点。
边界点是凸壳上的顶点,而且顶点必须是不共面的。
共面的
顶点会导致边界提取失败。
第四步,计算边界面。
边界面是指三维模型的外表面。
在得到边
界点后,就可以计算出边界面。
边界面的计算可以使用光线追踪算法,这样可以保证边界面的准确性和光滑性。
第五步,输出结果。
计算出边界面后,就可以将结果输出到文件
或者显示在屏幕上。
如果是用于CAD系统中,就可以把计算后的边界
面用于模型的分析和设计。
总的来说,三维边界提取算法是一种很有用的算法,它可以用于
很多三维图像处理和CAD应用中。
虽然这种算法的实现过程比较复杂,但是只要按照上述步骤进行计算,就可以得到准确的边界面,并用于
模型的分析和设计。
matlab边缘提取及拟合

matlab边缘提取及拟合边缘提取及拟合是数字图像处理中的一个重要的步骤。
边缘可以用于图像分割、物体识别、目标跟踪等领域。
本文将介绍边缘提取的常用方法以及拟合方法,并结合MATLAB代码进行讲解。
一、边缘提取方法1. Sobel算子Sobel算子是一种基于梯度的边缘检测算法,其原理是利用像素点周围的灰度值来计算梯度,从而得到边缘。
在MATLAB中,可以使用imgradient函数实现Sobel算子。
代码示例:I = imread('lena.png');[Gx, Gy] = imgradientxy(I);[Gmag, Gdir] = imgradient(Gx, Gy);imshowpair(Gmag, Gdir, 'montage');2. Canny算子Canny算子是一种基于多级阈值的边缘检测算法,其原理是先通过高斯滤波器对图像进行平滑处理,然后计算梯度,再进行非极大值抑制和双阈值分割,最后得到边缘。
在MATLAB中,可以使用edge函数实现Canny算子。
代码示例:I = imread('lena.png');BW = edge(I, 'canny');imshow(BW);二、拟合方法1. 直线拟合直线拟合是一种常用的边缘拟合方法,其原理是通过最小二乘法对边缘点进行拟合,从而得到一条直线。
在MATLAB中,可以使用polyfit函数实现直线拟合。
代码示例:I = imread('lena.png');BW = edge(I, 'canny');[H, T, R] = hough(BW);P = houghpeaks(H, 10);lines = houghlines(BW, T, R, P);imshow(I), hold onmax_len = 0;for k = 1:length(lines)xy = [lines(k).point1; lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');% Plot beginnings and ends of linesplot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');% Determine the endpoints of the longest line segmentlen = norm(lines(k).point1 - lines(k).point2);if ( len > max_len)max_len = len;xy_long = xy;endend2. 圆拟合圆拟合是一种边缘拟合方法,其原理是通过最小二乘法对边缘点进行拟合,从而得到一个圆。
基于MATLAB的图像锐化及边界提取

摘要图像增强是指依据图像所存在的问题,按特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些冗余信息的处理方法。
其主要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。
图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、平滑和锐化等几种常用的增强方法、彩色图像增强的理论基础,通过MATLAB实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。
关键词MATLAB ;图像锐化;边界提取AbstractImage enhancement is based on the problems existing in the images, according to the specific need to highlight some of the information in an image, at the same time, to weaken or remove some redundant information processing method. Its main purpose is to make the image after processing for a given application is more effective than the original image at the same time can effectively improve the image quality. Image enhancement technology mainly includes histogram modification, image smoothing processing, image intensification processing and color processing technology, etc. This article first overview of the principle of image enhancement and image enhancement method of classification and histogram enhancement, smoothing and sharpening of several common enhancement method, the theoretical basis of color image enhancement, through practical processing effect of MATLAB experiment compared the advantages and disadvantages of various algorithms, discussed the main technical points of the different enhancement algorithm, and its image enhancement method for performance evaluation.Key wordsMATLAB;image sharpening; edge extraction·目录摘要 0Abstract (1)第一章绪论 (3)1.1 图像锐化及边界提起发展背景和意义 (3)1.2 图像锐化处理的现状和研究方法 (3)1.3MATLAB简介 (4)1.4 MATLAB对图像处理的特点 (4)第二章基于MATLAB的图像锐化 (5)2.1图像锐化概述 (5)2.2 线性锐化滤波器 (5)2.3 非线性锐化滤波器 (6)2.3.1 Roberts算子 (6)2.3.2 Prewitt锐化算子 (7)2.3.3 Sobel锐化算子 (8)2.3.4 一阶微分锐化的效果比较 (9)2.3.5 二阶微分锐化其算法为: (9)第三章基于MATLAB的边界提取 (11)3.1图像边界提取的概念 (11)3.2微分算子法 (11)3.2.1 Sobel算子 (12)3.2.3 prewitt算子 (12)3.2.4 Laplacian算子 (13)3.2.5 Canny边缘检测法 (13)3.2.6各种方法边界提取的图像 (15)3.2.7结论 (17)参考文献 (18)致谢 (19)第一章绪论1.1 图像锐化及边界提起发展背景和意义数字图像处理(Digital Image Processing)又称为计算机图像处理,它最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。
图像处理中的边缘提取算法及实现毕业设计论文 精品

毕业论文(设计)题目: 图像处理中的边缘提取算法及其实现原创性声明本人郑重声明:本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。
对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。
论文作者签名:日期:关于毕业论文使用授权的声明本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属XXX。
本人完全了解XXX有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权XXX可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为XXX。
本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为XXX。
论文作者签名:日期:指导老师签名:日期:XXX本科毕业设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
图像边缘检测原理及方法

图 1-1 三种不同类型的边缘和对应的曲线
根据数字图像特点,处理图像时常采用差分代替导数运算。对于图像的简 单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不 具有普遍性。为了克服一阶导数的缺点,我们定义图像的梯度为梯度算子,它 是图像处理中最常用的一阶微分算法。图像梯度的最重要性质是梯度的方向是 在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。
0 1 0 1 4 1 0 1 0
1 1 1 1 8 1 1 1 1
0 1 0 1 4 1 0 1 0
1 1 1 1 8 1 1 1 1
卷积算子如图 2-4 所示。
2 2 px py
(2-7)
(2-8) (2-9)
1 0 1 px 1 0 1 1 0 0 1 1 1
图 2-4 Prewitt 边缘检测算子 由图2-4所示的两个卷积算子组成Prewitt边缘算子,图像中每个像素都用这 两个卷积的最大值做为该点的输出,运算结果是一幅边缘幅度图像。适当取门限 值TH,做判断,如果 P (i, j ) TH ,则 (i, j ) 为阶跃状边缘点, {P (i, j )} 为边缘图 像。 Prewitt 边缘算子另一种方法是,将算子扩展为八个方向,即边缘样板算子。 依次用边缘样板检测图像, 与被检测区域最为相似的样板给出最大值。用这个最 大值作为算子的输出值 P (i, j ) ,这样可将边缘像素检测出来。Prewitt 边缘检测 算子模板定义如下图2-5所示。
8方向
图2-5 Prewitt边缘检测算子模板 8个算子样板对应的边缘方向如下图2-6所示.[11]
图2-6 样板方向 选取合适门限值TH,并判断,若 P (i, j ) TH ,则 (i, j ) 为阶跃状边缘点,
数字图像的特征提取

数字图像的特征提取.txt23让我们挥起沉重的铁锤吧!每一下都砸在最稚嫩的部位,当青春逝去,那些部位将生出厚晒太阳的茧,最终成为坚实的石,支撑起我们不再年轻但一定美丽的生命。
呵呵,看了半天,原来你只不过要求进行边缘检测就可以,然后再做阈值化而已,太简单了。
按照下面做即可:void RobelEdgeDetect(LPBYTE lpDibTemp, LPBYTE lpDibSave,int width,int height){int i,j;float R;float RCos,RSin;for(j=1;j <height-1;j++)for(i=1;i <width-1;i++){RCos=(float)(lpDibTemp[(j-1)*width+i+1]+2*lpDibTemp[j*width+i+1]+lpDibTemp[(j+1)*width+i+1]-lpDibTemp[(j-1)*width+i-1]-2*lpDibTemp[j*width+i-1]-lpDibTemp[(j+1)*width+i-1]);RSin=(float)(lpDibTemp[(j+1)*width+i-1]+2*lpDibTemp[(j+1)*width+i]+lpDibTemp[(j+ 1)*width+i+1]-lpDibTemp[(j-1)*width+i-1]-2*lpDibTemp[(j-1)*width+i]-lpDibTemp[(j-1)*width+i+1 ]);lpDibSave[j*width+i]=(unsigned char)(float)sqrt(RCos*RCos+RSin*RSin);for(i=0;i <width;i++)//边缘处理{lpDibTemp[width*(height-1)+i]=lpDibTemp[width*(height-2)+i];lpDibTemp[i]=lpDibTemp[256+i];}for(j=0;j <height;j++){lpDibTemp[width-1+width*j]=lpDibTemp[width*j+width-2];lpDibTemp[width*j]=lpDibTemp[width*(j+1)];}for(j=0;j <height;j++)for(i=0;i <width;i++){lpDibSave[j*width+i]=255-lpDibSave[j*width+i];//反色if(lpDibSave[j*width+i]> =128) //阈值化lpDibSave[j*width+i]=255;elselpDibSave[j*width+i]=0;}}ok,一切完成!!!其中,阈值化时,要跟你的图像具体情况而定,当然可以使用自适应阈值最好了。
数字测图原理及方法概述

数字测图原理及方法概述数字测图是一种利用数字影像处理技术对地物进行测量和分析的方法。
它利用数字图像的像素信息来进行测量和分析,可以快速、精确地获得地物的位置、形状、面积、长度等数据,广泛应用于地理信息系统、遥感技术、地图制图等领域。
数字测图的原理是利用数字图像中像素的位置和灰度值来表示地物的空间信息,通过数字影像处理算法对图像进行处理,提取出地物的边界和特征,并进行测量和分析。
常用的数字测图方法包括边缘提取、图像分割、特征提取、几何校正等。
在数字测图中,常用的测量方法包括像素尺度测量、地理坐标转换、几何校正和配准、特征提取和匹配等。
通过这些方法,可以获得地物的位置、形状、面积等参数,实现对地物的精确测量和分析。
数字测图具有测量速度快、精度高、成本低等优点,因此在地理信息系统、城市规划、环境监测、水资源管理等领域得到广泛应用。
同时,随着数字影像处理技术的不断发展和完善,数字测图的方法和应用也在不断扩展和深化,对于地物的准确测量和分析起到了积极的推动作用。
数字测图的原理和方法是现代地理信息系统和遥感技术中的重要组成部分。
它利用数字图像的像素信息来进行地物的测量和分析,通过数字影像处理算法对图像进行处理,提取出地物的边界和特征,进行测量和分析。
数字测图的方法包括边缘提取、图像分割、特征提取、几何校正等,通过这些方法可以获得地物的位置、形状、面积等参数,实现对地物的精确测量和分析。
数字测图的一个重要原理是像素尺度测量,即利用数字影像中像素的位置和灰度值来表示地物的空间信息。
由于数字图像是由离散的像素组成,因此测量时需要考虑像素的尺度问题。
通常情况下,地物的位置和形态信息可以通过像素的位置和灰度值来获取,但是在进行测量时需要考虑像素的尺度,以确保测量的准确性。
另外,数字测图还涉及地理坐标转换、几何校正和配准、影像拼接等方法,以实现对地物的精确测量和分析。
在数字测图中,地理坐标转换是非常重要的。
由于数字影像的像素坐标是相对坐标,需要将其转换为地理坐标,才能方便地与地图坐标进行对应和比较。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九数字图像的边界提取一、实验目的了解有关数字图像边界提取的基本概念,熟悉Matlab软件中关于数字图像边界提取的基本命令,掌握利用Matlab软件进行数字图像边界提取的方法;同时,学会在图上加图题,会控制图题的位置。
二、相关知识在图像处理中,有一种十分实用的操作叫做边界提取,在提取了图像的边界后,就可以对图像进行进一步的操作如图像分割,特定区域的提取,骨架提取等等。
常用的边界检测算子有微分算子、拉普拉斯高斯算子和canny算子。
在MA TLAB中,系统提供edge函数,其功能是利用各种边界检测算子来检测灰度图像的边界。
函数edge的用法有以下几种:1.BW=edge(I);2.BW=edge(I,method);3.BW=edge(I,method,thresh);4.BW=edge(I,method,thresh,direction)其中:I:输入图像;method:提取边界的方法,共有六种可取的值,即共有六种可使用的方法,包括:’sobel’,’prewitt’,’roberts’,’log’,’zerocross’,’canny’,缺省时使用’sobel’;thresh:指定的阈值,所有不强于thresh的边都被忽略;direction:对于’sobel’和’prewitt’方法指定方向,可取值为:’horizontal’和’vertical’,’both’(缺省值)BW:返回的二值图像,其中1代表找到的边界。
在这些方法中,canny是较为优秀的一种,该方法使用两种不同的阈值分别检测强边界和弱边界,并且仅当弱边界和强边界相连时,才将弱边界包含在输出图像中。
因此,这种方法不容易被噪声干扰,更容易检测到真正的弱边界。
关于这些方法的真正含义,我们以后有专门的课程加以详细讨论,现在先看看它们的效果。
例:分别调用’sobel’,’prewitt’,’roberts’,’log’,’zerocross’和’canny’六种方法检测图像rice.tif的边界。
程序如下:I=imread('rice.tif');BW1=edge(I,'sobel');BW2=edge(I,'prewitt');BW3=edge(I,'roberts');BW4=edge(I,'log');BW5=edge(I,'zerocross');BW6=edge(I,'canny');imshow(I);title('图1: rice.tif原图','fontsize',14,'position',[128,280,0]);figure;imshow(BW1);title('图2: sobel算子提取的边界','fontsize',14,'position',[128,280,0])figure;imshow(BW2);title('图3: prewitt算子提取的边界','fontsize',14,'position',[128,280,0])figure;imshow(BW3);title('图4: roberts算子提取的边界','fontsize',14,'position',[128,280,0])figure;imshow(BW4);title('图5: log算子提取的边界','fontsize',14,'position',[128,280,0])figure;imshow(BW5);title('图6: zerocross算子提取的边界','fontsize',14,'position',[128,280,0])figure;imshow(BW6);title('图7: canny算子提取的边界','fontsize',14,'position',[128,280,0]) 运行结果如下:从上面结果我们可以看出,canny算子提取的边界较为完整。
关于title语句的用法,注意一下我们程序中的title语句,其简单用法就是踢title(‘图题的内容’),其实它还有一些可选的参数,包括图题的位置,图题的颜色,图题的字体,大小,等等参数,其一般用法是title(...,'属性名',属性值,...),例如,要控制图题的位置,用属性名’position’,其属性值是一个三维向量[x,y,[z]],其初始值是[0 0 0],其单位由units参数决定。
Units的可选值为pixels | normalized | inches | centimeters | points | {data},normalized 将整个矩形规范化成[0,1]×[0,1],其余都是绝对单位,1 point = 1/72 inch。
试一下,我们这个教材上的图题位置参数是多少?可选的属性还有,’color’,‘fontname’,’fontsize’等,有需要的时候可以通过察看help来进一步学习。
我们再看一个例子,还是用原图rice.tif,这次我们来考虑阈值问题,在不用edge中第三和参数时,系统自动选择阈值,我们可以用函数的如下调用格式来看系统为我们选择的阈值是多少,我们先看如下程序为我们带来的结果:I=imread('rice.tif');[BW1,th1]=edge(I,'sobel');th1str=num2str(th1)imshow(I);title('图1: rice.tif原图','fontsize',14,'position',[128,280,0]);figure;imshow(BW1);ti='图8: sobel算子提取的边界,阈值为';ti=strcat(ti,th1str)title(ti,'fontsize',12,'position',[128,280,0])我们将上面的程序中第二行换成[BW1,th1]=edge(I,'sobel',0.05);即可得到图9的结果。
我们看到,边界提取得比图8要完整,因此,我们还可以通过调整阈值来改善边界提取得结果。
三、实验内容1.分别对于图像text.tif,testpat1.tif,blood1.tif,nodules1.tif用上面提到的六种方法分别提取边界并加以比较,对这四幅图像提取边界的结果,分别对每一幅图给出你的判断,认为那种算子提取的边界最好?同时理解各种边界提取算子同时存在的必要性。
对每一幅图均标出图题,并使图题的位置位于图的下方,居中,选择其中的一幅图,使其图题的字体为黑体,字号为14号。
2.对于图像bonemarr.tif,通过调整阈值的方法,得出一幅你认为较好的边界图,并给出此时的阈值。
4.对于图像用上面提到的六种方法分别提取边界并加以比较,这次你认为那种算子提取的边界最好?5.完成实验报告,报告中只需要指明程序名,不需要程序和图,只要写明你的结论即可。
企业:控制网日期:2006-08-13领域:点击数:16391、Matlab简述Matlab是国际上最流行的科学与工程计算的软件工具,它起源于矩阵运算,已经发展成一种高度集成的计算机语言。
有人称它为“第四代”计算机语言,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化界面设计、便捷的与其它程序和语言接口的功能。
随着Matlab语言功能越来越强大,不断适应新的要求并提出新的解决方法,可以预见,在科学运算,自动控制与科学绘图领域,Matlab语言将长期保持其独一无二的地位。
2、几种常用的边缘检测算子边缘是图像的最重要的特征,。
边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。
边缘检测主要是灰度变化的度量、检测和定位。
有很多种不同的边缘检测方法,同一种方法使用的滤波器也不尽相同。
图像边缘检测就是研究更好的边缘检测方法和检测算子。
边缘检测的基本思想首先是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集。
由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。
因此,边界检测包括两个基本内容:●用边缘算子提取出反映灰度变化的边缘点集●在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子。
在Matlab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。
2.1微分算子法经典的边缘提取方法是考察图像的每个像素的某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,称为微分算子法。
导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值较高,因此我们将图像的导数算子运算值作为相应的边界强度,所以可以通过对这些导数值设置阈值,提取边界的点集。
一阶导数是最简单的导数算子。
已知在点f(x,y)处,梯度grad(F(x,y))的幅度为:它们分别求出了灰度在x和y方向上的变化率,但是要对每一个像素进行以上的运算,运算量较大,所以在实际应用中常用小区域模板卷积运算来进行近似计算。
模板运算的想法是将赋予某一个像素的值作为它本身灰度值和相邻象素灰度值的函数。
运用中,对x,y方向各用一个模板。
2.1.1 Sobel算子Sobel算子是滤波算子的形式来提取边缘。
X,Y方向各用一个模板,两个模板组合起来构成1个梯度算子。
X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。
图1 Sobel算子模板2.1.2 robert算子Robert算子是一种梯度算子,它用交叉的差分表示梯度,是一种利用局部差分算子寻找边缘的算子,对具有陡峭的低噪声的图像效果最好:模板如图:图2 Robert算子模板2.1.3 prewitt算子prewitt算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行地同滤波,所以prewitt 算子对边缘的定位不如robert算子。
模板如图;图3 prewitt算子模板代码如下:原始图像为三位编织复合材料二维截面图,对原始图像进行前期处理i=imread('d1.jpg');i2=im2double(i);ihd=rgb2gray(i2);[thr,sorh,keepapp]=ddencmp('den','wv',ihd);ixc=wdencmp('gbl',ihd,'sym4',2,thr,sorh,keepapp); figure,imshow(ixc),title('消噪后图像 ');k2=medfilt2(ixc,[7 7]);figure,imshow(k2),title('中值滤波');isuo=imresize(k2,0.25,'bicubic');%sobert、robert和prewitt算子检测图像边缘esobel=edge(isuo,'sobel');erob=edge(isuo,'roberts');eprew=edge(isuo,'prewitt');subplot(2,2,1);imshow(isuo);title('前期处理图像');subplot(2,2,2);imshow(esobel);title('sobel算子提取');subplot(2,2,3);imshow(erob);title('roberts算子提取');subplot(2,2,4);imshow(eprew);title('prewitt算子提取');图4微分算子边缘检测结果2.2Laplacian算子拉普拉斯高斯算子是一种二阶导数算子,将在边缘处产生一个陡峭的零交叉。