加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 检测图片中的多个形状并计算中间

发布时间:2020-12-15 09:50:31 所属栏目:大数据 来源:网络整理
导读:这个问题可以用任何类型的编程语言来解答,因为我想要一些算法帮助,但我更喜欢Delphi.我的任务是检测和计算随机图片的多个形状(1到N之间 – 大部分是圆形或Elipse)并计算它们的中间值并将它们作为图片的坐标返回.每个形状的中间可以有一个填充物(但没关系).形
这个问题可以用任何类型的编程语言来解答,因为我想要一些算法帮助,但我更喜欢Delphi.我的任务是检测和计算随机图片的多个形状(1到N之间 – 大部分是圆形或Elipse)并计算它们的中间值并将它们作为图片的坐标返回.每个形状的中间可以有一个填充物(但没关系).形状彼此相距至少1个像素.所有形状都不会与图片的另一个或角落融为一体.
图片的背景总是具有相同的背景颜色,实际上无关紧要,因为与背景相比,形状的边框/框架总是不同的颜色.这使得检测形状变得容易.我正在考虑按像素逐行扫描并收集坐标,然后围绕每个形状绘制一个不可见的矩形/正方形以计算中间值.然后我也听说过扫描线,但我认为在这种情况下它不会更快.所以我的问题是,我该如何计算:

>图片中有多少个形状.
>我如何计算(或多或少)它们的确切中间值.

一些图片可视化任务:

这是一张随机形状的图片(大多是近圆圈)
正如你所看到的,他们彼此分开就好了.

然后我可以很容易地绘制/计算每个形状周围的假想矩形/正方形,并计算它的中间:
?

我有矩形/正方形后.我可以很容易地计算中间.
我该如何开始?

PS.:我在mspaint中画了一些圆圈.我必须补充一点,所有形状都是CLOSED,这样就可以在图片中填充每个形状,没有任何问题!

谢谢您的帮助.

解决方法

计算图像的MSER(最大稳定极值区域).我在这里无法解释这个算法.有关该算法的更多信息,请参阅 Maximally stable extremal regions文章.

这也会给你质心.

该算法在OpenCv工具和Matlab 2012b中作为内置函数实现.

我可以想到并且可能比以前的方法简单的另一种方法是应用连通分量算法并计算对象数量.更多信息可以在Gonzalez和Woods的数字图像处理书中找到.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读