华工数学实验-作业5-图像轮廓线提取技术
- 格式:docx
- 大小:246.75 KB
- 文档页数:10
目标轮廓提取方法目标轮廓提取是计算机视觉和图像处理领域中的一个重要任务,其主要目的是从图像中识别并提取出感兴趣目标的边界或外形。
以下是几种常用的目标轮廓提取方法:边缘检测:这是最直接的方法,主要利用边缘检测算子如Canny、Sobel、Prewitt、Roberts等,它们通过计算图像中像素点的梯度强度来确定边缘。
这种方法对于具有明显边缘特征的目标效果较好,但对于边缘模糊或复杂背景的情况可能效果不佳。
阈值分割:这是一种基于像素值的方法,首先设定一个或多个阈值,然后根据像素值与阈值的关系将图像分为不同的区域。
例如,对于二值图像,可以直接设定一个阈值,大于阈值的像素被视为目标,小于阈值的像素被视为背景。
这种方法简单快速,但对于目标与背景颜色接近或重叠的情况可能效果不佳。
形态学处理:这是一种基于数学形态学的图像处理技术,主要利用结构元素对图像进行膨胀、腐蚀、开运算、闭运算等操作,从而提取或强调目标的轮廓。
这种方法对于去除噪声、填补孔洞、断开连接等任务非常有效。
区域生长:这是一种基于种子点的方法,首先选择一个或多个种子点,然后按照一定的规则(如像素值相似、距离近等)将相邻的像素点加入到目标区域中,直到满足停止条件。
这种方法对于目标内部特征一致、背景复杂的情况效果较好。
深度学习:近年来,随着深度学习技术的发展,越来越多的研究者开始使用神经网络来提取目标轮廓。
例如,U-Net、Mask R-CNN等网络可以直接从图像中预测出目标的轮廓或分割掩码。
这种方法对于复杂场景和多变的目标形状具有较强的适应性,但需要大量的训练数据和计算资源。
总的来说,目标轮廓提取的方法多种多样,需要根据具体的应用场景和目标特性来选择合适的方法。
M精编B简介图像轮廓线提取图像分割技术 The document was prepared on January 2, 2021MATLAB 软件使用简介MATLAB 是一个功能强大的数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。
MATLAB自1984年由美国的MathWorks公司推向市场,现已成为国际最优秀的科技应用软件之一。
一、MATLAB 的工作界面启动MATLAB后, 出现MATLAB命令窗口,空白区域是MATLAB 的工作区, 在此可输入和执行命令。
二、 MATLAB 操作的注意事项在工作区输入MATLAB命令后, 按下Enter键才能执行命令。
MATLAB 是区分字母大小写的。
如果不想显示结果,只要在所输入命令的后面加上一个分号“;”即可。
如:x= 2 + 3↙ x=5x = 2 + 3 ; ↙不显示结果5如果一个表达式一行写不下,可以在行尾键入“...”来换行。
如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5) ...-5+1/2-567命令行与M文件中的百分号“%”标明注释。
三、MATLAB的变量与表达式MATLAB的变量名MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字。
应该注意不要用MATLAB中的内部函数或命令名作为变量名。
列出当前工作空间中的变量命令为:who 将内存中的当前变量以简单形式列出;whos 列出当前内存变量的名称、大小、类型等信息;clear 清除内存中的所有变量与函数。
MATLAB常用的预定义变量ans:保存计算结果的缺省变量;Inf或inf:无穷大;i或j:虚数单位1 ; pi:圆周率π。
MATLAB的运算符数学运算符:+,-,*, \(左除), / (右除), ^ (乘幂)关系运算符:<, >, <=, >=, = =(等于), ~= (不等于)逻辑运算符:&(逻辑与), |( 逻辑或), ~( 逻辑非)MATLAB的表达式及语句表达式由运算符、函数、变量名和数字组成的式子。
数字图像轮廓提取方法数字图像轮廓提取是计算机视觉和图像处理领域中的一个重要任务,它在图像分析、形状识别和目标检测等方面有广泛的应用。
本文将介绍几种常用的数字图像轮廓提取方法,并对它们的优缺点进行讨论。
一、边缘检测边缘检测是最常用的数字图像轮廓提取方法之一。
它通过分析图像中像素灰度值的变化来确定物体的边缘。
常用的边缘检测算法包括Sobel算子、Prewitt算子和Canny算子等。
1. Sobel算子Sobel算子是一种基于梯度的算法。
它通过对图像进行卷积操作来计算图像在水平和垂直方向上的梯度值,然后将两个梯度值平方和开方得到最终的边缘强度。
Sobel算子简单易实现,对噪声具有一定的抑制作用,但边缘提取结果可能比较粗糙。
2. Prewitt算子Prewitt算子也是一种基于梯度的算法,它与Sobel算子类似,但使用了不同的卷积核。
Prewitt算子对噪声的抑制能力较差,但边缘提取结果较为精细。
3. Canny算子Canny算子是一种基于多阶段处理的算法,它首先对图像进行高斯滤波以平滑图像,然后计算图像梯度,接着使用非极大值抑制方法提取边缘,最后通过双阈值处理来连接边缘。
Canny算子精度较高,能够有效地提取细节边缘,但对参数设置要求较高。
二、形态学轮廓形态学轮廓是基于数学形态学原理的一种轮廓提取方法。
它利用图像形态学的操作,如腐蚀和膨胀,来提取图像中的物体轮廓。
形态学轮廓通常应用于二值图像,先对图像进行二值化处理,然后利用形态学操作来提取轮廓。
1. 腐蚀腐蚀是形态学中常用的操作之一,它通过将图像中的物体边缘向内缩小,同时抑制噪声和细小的边缘分支。
腐蚀操作可以得到物体的骨架轮廓。
2. 膨胀膨胀是形态学中的另一种操作,它通过将图像中的物体边缘向外扩张,填充物体间的空隙,从而使轮廓更加完整。
膨胀操作可以得到物体的外轮廓。
形态学轮廓方法简单易懂,对噪声具有一定的抑制作用,但提取结果可能比较粗糙,且对图像中物体的尺寸和形状敏感。
轮廓特征提取
轮廓特征提取是一种常用的图像处理技术,用于从图像中提取物体的轮廓信息。
这种技术可以应用于许多领域,例如医学图像分析、工业自动化、机器人视觉等。
轮廓特征提取的主要步骤包括:
1. 边缘检测:通过应用一些算法,如Canny算子、Sobel滤波器等,从图像中提取出物体的边缘。
2. 轮廓提取:在边缘检测的基础上,通过对边缘进行处理,提取出物体的轮廓。
常用的轮廓提取算法包括分水岭算法、连通域分析等。
3. 特征提取:在得到物体的轮廓后,可以通过一些特征提取方法,如Hu不变矩、Zernike矩、傅里叶描述子等,提取出物体的形状、纹理等特征信息。
轮廓特征提取的应用非常广泛,例如在医学图像分析中,可以通过提取肿瘤轮廓的特征信息,对肿瘤进行识别和分类;在工业自动化中,可以通过提取产品轮廓的特征信息,实现自动检测和质量控制;在机器人视觉中,可以通过提取环境中物体的轮廓特征,实现机器人的感知和导航等功能。
- 1 -。
图像识别中的轮廓提取算法探索随着计算机视觉技术的快速发展,图像识别成为了一个备受研究关注的领域。
在图像识别过程中,轮廓提取算法起到了至关重要的作用。
本文将从不同方法的角度,探索图像识别中的轮廓提取算法。
一、边缘检测算法边缘检测是图像处理中一项重要的技术,旨在从图像中提取出物体的轮廓信息。
最常用的边缘检测算法包括Canny算子、Sobel算子和Laplacian算子。
这些算法基于图像的亮度变化来进行边缘的检测,可以有效地提取轮廓信息。
Canny算子在边缘检测方面表现出色。
它利用了图像的梯度信息,并通过非最大抑制和双阈值处理来提取出准确的边缘。
Sobel算子是一种简单而常用的边缘检测算子。
它利用图像的亮度变化率来检测边缘,然后通过梯度幅值的阈值来确定是否为边缘点。
Laplacian算子则是一种二阶微分算子,通过求取图像亮度的二阶导数来检测边缘。
这种算法对于噪声的鲁棒性较强,能够提取到更为细致的边缘。
二、基于模型的轮廓提取算法基于模型的轮廓提取算法是通过对图像的区域进行建模来提取轮廓信息。
这类算法包括活动轮廓模型和分水岭算法。
活动轮廓模型是一种基于能量泛函的方法,它通过最小化能量函数,使得轮廓向物体的边缘收缩。
这类算法在复杂背景下能够准确地提取出物体的轮廓。
分水岭算法则是一种经典的图像分割算法,通过将图像看作地形地貌,以像素的灰度值作为高度的参考,实现对图像的分割。
这种算法适用于多物体的分割,但对于重叠的物体分割效果较差。
三、深度学习在轮廓提取中的应用近年来,深度学习技术在图像识别领域取得了巨大的突破。
通过训练大规模的神经网络,可以实现对图像中物体轮廓的准确提取。
深度学习模型中最常用的是卷积神经网络(CNN)。
CNN通过学习具有不同卷积核的特征提取器,能够从图像中提取出具有鲁棒性的特征。
这些特征可以用于提取轮廓信息,并辅助进行图像识别。
同时,生成对抗网络(GAN)也被用于图像的轮廓提取。
GAN通过同时训练一个生成器和一个判别器,使得生成器能够生成逼真的图像,而判别器能够准确区分真实图像和生成图像。
基于计算机视觉测量技术的图像轮廓提取方法研究一、本文概述随着计算机视觉技术的快速发展,其在工业测量、医疗诊断、自动驾驶等众多领域的应用日益广泛。
图像轮廓提取作为计算机视觉中的一项关键技术,对于实现目标的识别、定位、跟踪等任务具有重要意义。
本文旨在研究基于计算机视觉测量技术的图像轮廓提取方法,以提高轮廓提取的准确性和效率。
本文将回顾传统的图像轮廓提取方法,如边缘检测算子、阈值分割等,并分析其优缺点。
在此基础上,本文将探讨基于现代计算机视觉测量技术的轮廓提取方法,如基于深度学习的轮廓检测算法、基于结构光的三维轮廓测量技术等。
这些新方法在轮廓提取的准确性和鲁棒性方面具有显著优势,能够更好地适应复杂多变的实际应用场景。
本文将详细介绍所研究的图像轮廓提取方法的具体实现过程,包括预处理、特征提取、轮廓检测等步骤。
本文将通过实验验证所提出方法的有效性,并与传统方法进行比较,以展示其在实际应用中的优势。
本文还将探讨基于计算机视觉测量技术的图像轮廓提取方法在未来可能的发展方向和挑战。
随着深度学习、三维重建等技术的不断进步,轮廓提取方法将在更多领域发挥重要作用,为实现更智能、更高效的图像处理和分析提供有力支持。
二、图像轮廓提取基础理论图像轮廓提取是计算机视觉测量技术中的关键步骤,其目标是识别并描绘出图像中物体的边缘或边界。
这些轮廓信息对于理解图像内容、进行物体识别、三维重建等任务至关重要。
图像轮廓提取主要基于边缘检测算法和轮廓跟踪算法。
边缘检测算法是轮廓提取的基础,它通过对图像中像素强度的突变进行检测,从而找到边缘位置。
经典的边缘检测算子包括Sobel、Prewitt、Roberts、Canny等。
这些算子通过计算图像在水平和垂直方向上的梯度强度,来判定像素是否属于边缘。
其中,Canny算子以其良好的噪声抑制能力和边缘定位精度,在实际应用中得到了广泛应用。
轮廓跟踪算法则是在边缘检测的基础上,通过连接相邻的边缘像素,形成连续的轮廓线。
4.2.1 图像轮廓的提取和中心点的生成4.3标定实验普通的摄像机标定方式全部需要使用标定参照物,也就是在标定时期在摄像机前放置已知形状和尺寸的物体。
4.3.1选取标定参照物普遍使用具有圆形特点的、棋盘与立方体标定物等[19-24],本文主要使用标定参照物当做圆形特征的平面模板,参考图 4.2 内容,最初是由JanneHeikkilä 指出的全新标定方式,上述模板将圆孔中心当做标定参照点,和一般参照物对比来说,优势是制作便利,圆孔中心坐标对图像处理中的阈值化操作不敏锐,几何意义清楚,不需要特征对照,精准度高等。
4.3.2选取工件坐标系在测试的时候,最先要选择工件坐标系来叙述工件位姿数据。
选择方式为:确定标定板的两条中心对称线,会贯穿中心线所通过的众多圆的圆心,此外上述中心线的重叠点就是中心圆的圆心。
之后把标定板放置在工作台上,调节摄像机的视场中,在视觉软件中开启视频图像窗口的图像坐标系显示线,调节标定板两条中心线和视频窗口内的图像坐标系显示线中心重叠,参考图4.3 内容。
图4.3标定板中心线和图像坐标系坐标轴线重叠在上述环节中,主要在机器视觉控制界面内的窗口观察进行相关调节。
两条中心线重叠之后,确定标定板不会变化,此刻标定板的中心,换句话说就是确定的工件坐标系圆点,Z 轴垂直在标定板平面方向上,X 轴与Y 轴通过上述两条中心线。
其正方向的选择标准是尽可能缩小工件坐标系和机器人基坐标系两轴正方向的夹角。
如此选择工件坐标系的优势是图像坐标系和工件坐标系的XOY 面在图像内的投影重叠,如此就可以省略运算环节,缩小结果误差。
4.3.3计算摄像机的外参数dx 和dy确定标定参照物和工件坐标系以后,要对摄像机筹集图像的全部像素对照在工件坐标系下XOY 面的物理尺寸dx和dy 进行计算。
依照标定板得知每相邻两圆的圆心距离是38cm,X 轴、Y 轴所处直线上能选择距离最长的两圆距离和像素值当做参考,如此就可以缩小误差。
图像处理中的轮廓提取技术研究在图形图像处理领域,轮廓提取一直是一个值得深入研究的问题。
轮廓提取技术是将目标的边界或轮廓提取出来,它是图形图像处理领域中的一个重要问题。
轮廓提取技术已经在许多领域中得到了广泛的应用,比如计算机视觉、医学图像处理和机器人等领域。
轮廓提取算法种类繁多,本文将讨论一些常见的轮廓提取技术。
一、边缘检测算法边缘检测是图像处理中最基础的技术之一,它可以将图像中的边缘或轮廓提取出来。
常见的边缘检测算法有Canny算法、Sobel 算法和Laplacian算法等。
其中,Canny算法是一种经典且被广泛使用的边缘检测算法。
这个算法的主要思想是寻找图像中梯度变化最大的点,然后将这些点连接起来形成轮廓。
Sobel算法和Laplacian算法也常被用来进行轮廓提取。
Sobel算法是一种基于一阶导数的边缘检测算法,而Laplacian算法则是一种基于二阶导数的边缘检测算法。
二、阀值分割算法阈值分割是一种基于像素灰度值的图像分割方法。
它将图像分成两个部分:一个部分是大于或等于阈值的像素,另一个部分是小于阈值的像素。
常见的阈值分割算法包括Otsu算法、基于区域生长的分割算法和基于水平分割的方法等。
其中,Otsu算法是一种被广泛应用的自适应阈值分割算法,它可以有效地提取出图像的轮廓。
基于区域生长的分割算法则是一种基于区域生长的分割方法,它利用像素之间的相似性来提取轮廓。
而基于水平分割的方法则是一种基于像素灰度值的分割算法。
三、边界追踪算法边界追踪是一种特殊的轮廓提取算法,它是将轮廓上的所有像素依次排序,形成一条连续的路径。
常见的边界追踪算法有基于Chain Code的边界追踪算法和基于边沿链表的边界追踪算法等。
Chain Code是一种将轮廓像素编码成数字序列的方法,而基于边沿链表的边界追踪算法则是一种将轮廓像素存储到链表中的方法。
四、基于曲线演化的算法曲线演化是一种基于变分学习和微分方程的图像处理技术。
计算机视觉测量技术的图像轮廓提取方法分析摘要:文章提出了一种图像轮廓的提取方法,这种方法具有更高的精度和抗干扰能力,并且对我国计算机视觉测量技术的发展前景作出了展望。
关键词:计算机技术;轮廓提取;视觉测量计算机视觉测量技术是一种综合技术,融合了光电子技术、计算机技术、图像处理技术等多种技术。
在对采集对象进行处理之后,就可以得到目标物体的几何特征参数。
想要得到准确的图像,就必须重视目标物体的轮廓提取参数。
在计算机视觉测量系统中,为了保障测量的精准度,选取合适的轮廓提取方法也是很重要的。
边缘检测法是轮廓提取方法中主要的内容,该方法借助于空域微分算子,使图像和模板完成卷积。
边缘检测方法中的局部算子法,具有实现简单、运算速度快等优点。
梯度算子、Sobel算子、Roberts算子、canny算子,都是经典局部算子法。
本文提出了基于灰度阈值法的原理,根据链码跟踪技术对轮廓信息进行存储,实现图像轮廓的提取。
这种方法具有准确度高、稳定性好等优势,在工程上的应用十分广泛。
1 轮廓提取的原理轮廓提取指的是从物体图像上得到物体外形,它能够有效保障测量的精确度。
由于计算机视觉测量图像只含有目标和背景2类区域,应该利用阈值分析法对图像进行分割。
为了确保二维图像中没有噪音,可以利用非线性的滤波能力消除噪音。
为了实现轮廓提取,将会掏空图像内部的点。
通过链码跟踪技术对轮廓的信息进行存储,使图像的轮廓处理工作量得以减轻。
轮廓提取的工作流程是:首先对原始图像进行预处理,消除噪音后可以得到平滑的图像。
然后,对图像进行阈值分割得到二维图像。
对二值图像进行轮廓提取,就可以得到图像的边界点。
最后,再根据跟踪算法将轮廓存储为链码序列的形式。
2 图像轮廓提取的关键技术轮廓提取技术是计算机视觉测量技术中的重要组成部分,轮廓提取技术主要包括图像预处理技术、阈值分割技术、轮廓提取技术和链码跟踪技术等内容。
本文将具体介绍几种关键的图像的轮廓提取技术。
计算机科学与工程学院}}curBitmap = new Bitmap(bitmap);bitmap.Dispose();this.pictureBox_new.Image = curBitmap;}catch (Exception ex){MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);}}示例图:图1-1 整体轮廓提取图1-2 外轮廓提取2.实现目标图像的特征提取原理:图像特征提取是计算机视觉和图像处理中的一个概念。
它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果。
SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。
整个算法分为以下几个部分:1.构建尺度空间;2.LoG近似DoG找到关键点<检测DOG尺度空间极值点>;3.除去不好的特征点;4.给特征点赋值一个128维方向参数;5.关键点描述子的生成;6.根据SIFT进行匹配。
图2-1 不同σ下图像尺度空间代码:private void ToolStripMenuItem_imgprocess_getfeature_Click(object sender, EventArgs e){try{//Load ImageMat c_src1 = imread("..\\Images\\3.jpg");Mat c_src2 = imread("..\\Images\\4.jpg");Mat src1 = imread("..\\Images\\3.jpg", CV_LOAD_IMAGE_GRAYSCALE);Mat src2 = imread("..\\Images\\4.jpg", CV_LOAD_IMAGE_GRAYSCALE);if (!src1.data || !src2.data){ std::cout << " --(!) Error reading images " << std::endl; return -1; }//sift feature detectSiftFeatureDetector detector;BFMatcher matcher(NORM_L2);vector<DMatch> matches;matcher.match(des1, des2, matches);Mat img_match;drawMatches(src1, kp1, src2, kp2, matches, img_match);//,Scalar::all(-1),Scalar::all(-1),vector<char>(),drawmode);cout << "number of matched points: " << matches.size() << endl;imshow("matches", img_match);cvWaitKey();cvDestroyAllWindows();}catch (Exception ex){MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, Message BoxIcon.Stop);}}示例图:图2-2 提取特征处理附录基本概念及一些补充什么是局部特征?•局部特征从总体上说是图像或在视觉领域中一些有别于其周围的地方•局部特征通常是描述一块区域,使其能具有高可区分度•局部特征的好坏直接会决定着后面分类、识别是否会得到一个好的结果局部特征需具备的特性•重复性•可区分性•准确性•数量以及效率•不变性局部特征提取算法-sift•SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。
《数学实验》报告
学院:电子与信息学院
专业班级:通信工程4班
学号:201130301443
姓名:李腾辉
实验名称:图像轮廓线提取技术实验日期:2013.05.03
第五次实验
1.实验内容
任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析,并与MATLAB自带的边缘检测做对比。
2.实验过程
首先,用imread()函数将图像读取为矩阵,为便于程序运算,舍弃图像边缘的点,这样对图像的影响效果很小,可忽略。
第二步是对矩阵上的点进行非线性化(用sin或cos或tan等函数都可以),离散为从0到100的值。
其目的是为了在进行比较灰度值的时候,方便自定义各种差值。
最后,用户给定一个差值,根据这个值来比较检测点与其周围8个点的灰度值,若大于给定差值,则认为检测点位于轮廓线上,否则,不在轮廓线上。
开始使用sin进行非线性化,但是发现效果不佳,噪点太多,如下图
然后尝试改用tan进行非线性化,效果好很多,如下图
同样用tan进行非线性化的另一幅图像
源代码如下:(上图中n的取值为8,其它的取值不太合适)
function tlab=linecalculate(piclab,n) %计算矩阵轮廓线,引用参数"在里面填入图片名.后缀",n为比较参数(取值为1-100),越大阈值取得越高
[a,b]=size(piclab); %a,b分别等于矩阵的行数和列数B=double(piclab); %将矩阵变为双精度矩阵
D=100*tan((pi/4)*(1/255)*B); %将矩阵进行非线性变换
tlab=piclab; %新建同等大小矩阵
for p=2:a-1 %计算矩阵轮廓线
for q=2:b-1
if
abs(D(p,q)-D(p,q+1))>n||abs(D(p,q)-D(p,q-1))>n||abs(D(p ,q)-D(p+1,q))>n||abs(D(p,q)-D(p-1,q))>n||abs(D(p,q)-D(p -1,q+1))>n||abs(D(p,q)-D(p+1,q-1))>n||abs(D(p,q)-D(p-1, q-1))>n||abs(D(p,q)-D(p+1,q+1))>n
tlab(p,q)=0; %置轮廓线点为黑色
else
tlab(p,q)=255; %置非轮廓线点为白色
end
end
end
再与系统自带的三种方法进行对比
由图可以看出,简单阈值法对于提取对比鲜明的图片轮廓线上具有一定的可行性,但是是算法效率较低,运行程序时经常出现假死状态;而系统自带的三种方法在运行效率方面就要快很多了,然而这些算法在图片的某些地方出现间断,不连续,因而要根据所选择的图像选择恰当的算法进行处理,才能取得好的效果。
下面是彩色图片的处理效果
使用简单阈值法分别对三种颜色的图像进行轮廓处理
使用系统自带函数与简单阈值法对比图
行轮廓提取,然后再选择效果最佳的一幅
源代码如下:
function linecolor(pix,n) %彩色图片轮廓线提取函数figure;
A=imread(pix); %读取指定彩色图片
T=A;T(:,:,2)=0;T(:,:,3)=0;
subplot(3,5,1);imshow(T);
axis image;title('红色原图');
W1=edge(A(:,:,1),'roberts');
subplot(3,5,2); imshow(W1) ;
title('Roberts');
W2=edge(A(:,:,1),'sobel');
subplot(3,5,3); imshow(W2) ;
title('Sobel ');
W3=edge(A(:,:,1),'log');
subplot(3,5,4); imshow(W3) ;
title('拉普拉斯高斯');
T1=linecalculate(A(:,:,1),n); %计算红色矩阵轮廓线
subplot(3,5,5);imshow(T1);
title('简单轮廓');
T=A;T(:,:,1)=0;T(:,:,3)=0;
subplot(3,5,6);imshow(T);
axis image;title('绿色原图');
W7=edge(A(:,:,2),'roberts');
subplot(3,5,7); imshow(W7) ;
title('Roberts');
W8=edge(A(:,:,2),'sobel');
subplot(3,5,8); imshow(W8) ;
title('Sobel');
W9=edge(A(:,:,2),'log');
subplot(3,5,9); imshow(W9);
title('拉普拉斯高斯');
T2=linecalculate(A(:,:,2),n); %计算红色矩阵轮廓线
subplot(3,5,10);imshow(T2);
title('简单轮廓');
T=A;T(:,:,1)=0;T(:,:,2)=0;
subplot(3,5,11);imshow(T);axis image;title('蓝色原图'); W7=edge(A(:,:,2),'roberts');
subplot(3,5,12); imshow(W7) ;
title('Roberts');
W8=edge(A(:,:,2),'sobel');
subplot(3,5,13); imshow(W8) ;
title('Sobel ');
W9=edge(A(:,:,2),'log');
subplot(3,5,14); imshow(W9);
title('拉普拉斯高斯');
T3=linecalculate(A(:,:,3),n); %计算红色矩阵轮廓线 subplot(3,5,15);imshow(T3);
title('简单轮廓');
第二题
1.实验内容
提出其它的轮廓线提取方法,与简单阈值法进行比较分析。
通过网上查阅资料,得知轮廓提取的方法还有很多,传统的轮廓提取方法主要是利用边缘检测算子进行边缘的提取,然后根据目标物体的轮廓特点去除杂散的冗余边缘并进行边缘的修补,但提取的轮廓不一定是连续和单像素宽的,不便于计算机的下一步处理;还有数学形态学法,具有单像素宽、抗干扰等优点,但由于噪声随机分布的特征, 物体边界领域受噪声干扰的点幅值接近阈值的像素点被检漏或误检, 所以, 提取的轮廓有时有断点的出现, 并不是连续的轮廓, 不能把轮廓的特征完全表达出来, 给图像的进一步处理带来麻烦。
通过查阅万方数据库查到,现在比较先进的方法有先验知识法、水平集方法、活动轮廓模型方法、神经动力学方法、Randon变换法等,由于本人知识能力有限,无法一一列举个中利弊,但通过这次的查阅学习,让我大开眼界,看似简单的轮廓检测竟包含了如此多的数学理论,数学真是个无比强大的工具啊!。