区域生长算法 C++实现

区域生长算法 C++实现,第1张

在比赛和项目中判侍用opencv用多了,就会发现很多opencv没有实现的算法,其中一些还是十分常用,在教科书上经常出现的。作为一个弱鸡,有的简单的算法能够自己实现(比如本文所要讲的),有的写到一半就打出GG,有的直接就下不了手。。。作为一个非计算机科班的自动化系学生,想要成为一名视觉算法工程师,还是有很长的路要走啊~~

其实看上图和这个名字就很容易理解,区域生长是根据预先定义的生长准则将像素或子区域组合为更大区域的过程。基本方法是从丛让一组“种子”点开始(原点),将与种子相似的临近像素(在特定范围内的灰度或颜色)添加到种子栈中,不断迭代,生成一大片区域。严谨的数学定义可以查看冈萨雷斯的数字图像处理。

算法的步骤如下:

我这里因为项目需要,对原本的区域生长算法多加了最大与最小值的限制,作为默认参渗冲局数可以不填。

上面是灰度图像的处理,我这里重载了三通道图像的区域生长

References:

https://blog.csdn.net/robin__chou/article/details/50071313

数字图像处理(第三版) ——冈萨雷斯 P493

可以用cvSetImageROI函数。例如:

CvRect roi_rect

//基于给定的矩形设置感肢举兴趣区域ROI

roi_rect.x=125

roi_rect.y=300

roi_rect.width=240

roi_rect.height=200

cvSetImageROI(src,roi_rect)//src,闭散原历态碧图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12482732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存