首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Imagick:返回图像中圆形对象的位置和大小

Imagick:返回图像中圆形对象的位置和大小
EN

Stack Overflow用户
提问于 2019-11-04 15:13:40
回答 1查看 68关注 0票数 1

我有这样的图像:

使用以下Imagick cli命令:

代码语言:javascript
复制
magick model.png -canny 0x0+1%+10% -negate -blur 3x.7 -solarize 50% -level 50%,0 model_canny.png

它被转换成这样:

有可能得到牙齿在牙弓中的位置/大小吗?它不一定是完美的。即使它在牙弓中检测到很少的牙齿,对我来说理解它是如何工作的也是一件很棒的事情。到目前为止,我已经尝试使用connected-components参数,它给出了数以千计的结果,这显然是不正确的。以下是我到目前为止所做的工作:

代码语言:javascript
复制
magick model_canny.png -fuzz 5% -define connected-components:verbose=true -connected-components 4 objects.png

另外,有没有可能去掉牙齿内部随机的黑线?如有任何帮助,将不胜感激..

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 17:15:24

分离对象的常用方法是使用形态侵蚀,使用类似如下的命令:

代码语言:javascript
复制
magick fangs.png -alpha extract -trim -morphology erode disk:5 result.png

以下是各种磁盘大小的效果动画:

更进一步,你可以在循环中进行腐蚀,然后进行“连通分量分析”,计算斑点的数量,并不断增加磁盘大小,直到获得合理的牙齿数量。

或者,你可能需要更努力地工作,并尝试将抛物线(以蓝色显示)与组成牙齿的像素拟合,如果这是最好的形状-而不是牙医,我自己!然后,使用抛物线,您可以找到抛物线周围的法线(以红色显示),并将与最小数量的牙齿相交的法线作为牙齿之间的边界。粗略图:

或者将你的Canny边缘检测图像叠加到拟合的抛物线上,看看你的边缘与它相交的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58688723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档