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

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

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

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

一些图片可视化任务:

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

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

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

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

谢谢您的帮助.

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

这也会给你质心.

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

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

总结

以上是内存溢出为你收集整理的delphi – 检测图片中的多个形状并计算中间全部内容,希望文章能够帮你解决delphi – 检测图片中的多个形状并计算中间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://www.54852.com/langs/1273008.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存