社区
C语言
帖子详情
轮廓的提取
zyy96168
2005-01-29 09:48:36
如何将真彩图片的图形内轮廓进行提取使它变成只有线条的图片
...全文
565
6
打赏
收藏
轮廓的提取
如何将真彩图片的图形内轮廓进行提取使它变成只有线条的图片
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xdspower
2005-01-30
打赏
举报
回复
你要先设置转换条件,就可以转化成黑白颜色,然后就可以提取黑色轮廓了。这个其实是一个矢量转化的过程,其实彩色的也可以转换的。不知道你用过flash中的把位图转换成矢量图的工具没有,那个就可以转换彩色的。
dongpy
2005-01-30
打赏
举报
回复
轮廓的提取,边缘检测就可以做到,不过得到的轮廓比较粗糙,基本原理就是根据图像的灰度梯度来检测轮廓.
边缘检测有很多经典算子(Sobel,Roberts,Canny等等)可以用.(先预处理一下,如图像灰度化,滤波去噪声等)
如果要得到比较精确的轮廓,可以图像分割以后,边界跟踪,还可辅以边界修补,得到更为理想的轮廓.
图像分割一般就是图像二值化,也是先预处理,然后用二值化算法,也有很多经典方法,效果不错(最常见的就是大津法及其改进算法),得到二值图像后,边界跟踪(八邻域法即可),这样就得到边界序列.
//第二种方法一般是用来识别目标的.
//一般图像处理书上关于边缘检测,图像分割,边界跟踪,有很详细的内容,可以参考一下.
//具体选择哪一种算法最佳,跟图像本身也有关系的.
idler
2005-01-30
打赏
举报
回复
这个。。真的应该发算法组。。。
qrlvls
2005-01-30
打赏
举报
回复
图像边缘提取
-- ISee组内部资料
边缘提取以及边缘增强是不少图像处理软件都具有的基本功能,它的增强效果很明显,在用于
识别的应用中,图像边缘也是非常重要的特征之一。图像边缘保留了原始图像中相当重要的部分信息,
而又使得总的数据量减小了很多,这正符合特征提取的要求。在以后要谈到的霍夫变换(检测图像中的几
何形状)中,边缘提取就是前提步骤。
这里我们只考虑灰度图像,用于图像识别的边缘提取比起仅仅用于视觉效果增强的边缘提取要
复杂一些。要给图像的边缘下一个定义还挺困难的,从人的直观感受来说,边缘对应于物体的边界。图
像上灰度变化剧烈的区域比较符合这个要求,我们一般会以这个特征来提取图像的边缘。但在遇到包含
纹理的图像上,这有点问题,比如说,图像中的人穿了黑白格子的衣服,我们往往不希望提取出来的边
缘包括衣服上的方格。但这个比较困难,涉及到纹理图像的处理等方法。
好了,既然边缘提取是要保留图像的灰度变化剧烈的区域,从数学上,最直观的方法就是微分
(对于数字图像来说就是差分),在信号处理的角度来看,也可以说是用高通滤波器,即保留高频信号。
这是最关键的一步,在此之前有时需要对输入图像进行消除噪声的处理。
用于图像识别的边缘提取往往需要输出的边缘是二值图像,即只有黑白两个灰度的图像,其中
一个灰度代表边缘,另一个代表背景。此外,还需要把边缘细化成只有一个像素的宽度。总的说来边缘
提取的步骤如下:
1,去噪声
2,微分运算
3,2值化处理
4,细化
第二步是关键,有不少书把第二步就直接称为边缘提取。实现它的算法也有很多,一般的图像
处理教科书上都会介绍好几种,如拉普拉兹算子,索贝尔算子,罗伯特算子等等。这些都是模板运算,
首先定义一个模板,模板的大小以3*3的较常见,也有2*2,5*5或更大尺寸的。运算时,把模板中心对
应到图像的每一个像素位置,然后按照模板对应的公式对中心像素和它周围的像素进行数学运算,算出
的结果作为输出图像对应像素点的值。
需要说明的是,模板运算是图像的一种处理手段--邻域处理,有许多图像增强效果都可以采用
模板运算实现,如平滑效果,中值滤波(一种消除噪声的方法),油画效果,图像的凹凸效果等等。这些
算法都比较简单,为人们常用。
关于前面提到的几种边缘提取算子(拉普拉兹算子,索贝尔算子,罗伯特算子),教科书上都有
较为详细的介绍,我这里不多说了,(手头上没有教科书,也懒得翻译英文资料),如果你们有时间,可
以把这些方法的具体情况仔细介绍一下。这里对拉普拉兹算子和索贝尔算子补充两句。拉普拉兹算子是
2阶微分算子,也就是说,相当于求取2次微分,它的精度还算比较高,但对噪声过于敏感(有噪声的情
况下效果很差)是它的重大缺点,所以这种算子并不是特别常用。索贝尔算子是最常用的算子之一(它是
一种一阶算子),方法简单效果也不错,但提取出的边缘比较粗,要进行细化处理。另外,索贝尔算子
也可提取出图像边缘的方向信息来,有文章论证过,在不考虑噪声的情况下,它取得的边缘信息误差不
超过7度。
顺便说一句,往往我们在进行边缘提取时只注意到位置信息,而忽略了边缘的方向。事实上,
图像的边缘总有一定的走向,我们可以用边缘曲线的法线方向(和切线垂直的直线)来代表边缘点的方向
。在图像识别的应用中,这个方向是非常重要的信息。
上面的几种算子是属于比较简单的方法,边缘提取的精度都不算特别高,下面介绍几种高级算
法。首先是马尔(Marr)算子,马尔是计算机视觉这门学问的奠基人,很了不起,但这些理论很难懂。他
提出的边缘提取方法可以看成两个步骤,一个是平滑作用来消除噪声,另一个是微分提取边缘,也可以
说是由两个滤波器组成,低通滤波去除噪声,高通滤波提取边缘。人们也称这种方法为LOG滤波器,这也
是根据它数学表达式和滤波器形状起的名字。也可以采用模板运算来实现这种算法,但模板的大小一般
要在7*7以上,所以运算复杂程度比索贝尔算子等要大不少,运算时间当然也长许多。
另外一种非常重要的算法是坎尼(Canny)算子,这是坎尼在1986年写的一篇论文里仔细论述的。
他给出了判断边缘提取方法性能的指标。而坎尼算子也是图像处理领域里的标准方法,也可以说是默认
的方法。比较奇怪的是,国内的图像处理教科书中,介绍坎尼算子的很少。本人见过的书中,郑南宁的
‘计算机视觉与模式识别’(1998年),算是介绍的比较详细的。坎尼算子在使用时要提供给一些参数,
用于控制算法的性能,实际上,对于不同的图像或不同的边缘提取目的,应该提供不同的参数,以达到
最佳效果。它也有模板运算方法,模板的大小也比较大,和提供的参数有关,标准的大小差不多是17*17
,可以根据算子的可分离性用快速算法(否则就会慢的一塌糊涂),坎尼算子的2值化也很有特色,具有
一定的智能性。
还有一种算法:Shen-Castan算子,大概可称为沈峻算子,总之是中国人的成果,效果和坎尼
算子不相上下,这种算法在对边缘提取好坏的判别标准上有些不同。(这种方法我没用过,好象编起程
序来,要比坎尼算子还复杂)
在实际的图像处理与识别应用中,有时需要根据被处理图像的种类以及实际目的,量身定做算
法,边缘提取也是一样,但是基本原理都是一样的。
sboom
2005-01-30
打赏
举报
回复
先二值化,在进行边沿检测,有很多算子.
sunwt
2005-01-30
打赏
举报
回复
先转成黑白,轮廓就出来了
轮廓
提取
(中心识别)算法
单图元
轮廓
提取
及中心识别Demo,支持多色位图的算法!
平面离散点集外
轮廓
提取
基于凸包,使用凹点挖掘技术,实现平面离散点集外
轮廓
提取
基于OpenCV的数字图像处理课程
本教程基于OpenCV4.6版本进行讲解,会使用python/c++/c#等多种开发语言。并结合冈萨雷斯《数字图像处理》第四版的教材,由浅入深的贯穿数字图像处理的低级、中级、高级等阶段。图像的低级过程比如图像预处理以减少噪声、对比度增强和图像锐化等等。图像的中级处理涉及诸如分割等任务,中级过程的特点是其输入通常是图像,但其输出是从这些图像中
提取
的属性(例如,边缘、
轮廓
和单个对象的身份)。更高级的处理涉及“理解”一组已识别对象,如图像分析,模板匹配、模式识别等等。会涉及所有基础且重要的图像处理方法,其中讲解的每个理论点、函数方法等都会辅以案例进行补充,以使得读者达到不光知道怎么用、更要了解为什么用的程度。
建筑物
轮廓
提取
建筑物
轮廓
提取
建筑物
轮廓
提取
建筑物
轮廓
提取
建筑物
轮廓
提取
建筑物
轮廓
提取
基于
轮廓
提取
的多边形近似匹配算法 matlaB
基于
轮廓
提取
的多边形近似匹配算法 matlaB编的
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章