“imfindcircles”为什么不找圈在我的图像吗?

93(30天)
“imfindcircles”功能不可靠地发现圈子,尤其是如果他们不完美或者图像对比度低。我怎么能找到圈子更可靠和有效地在我的图像吗?

接受的答案

MathWorks支万博1manbetx持团队
MathWorks支万博1manbetx持团队 2023年5月10日下午4
编辑:MathWorks支万博1manbetx持团队 2023年5月11日13:07
成功使用的几个小贴士imfindcircles的“技巧”一节中可以找到这个函数的文档:
也有一些其他因素阻碍的正确检测。例如,已知imfindcircles敏感图像的对比。下面是几个额外的因素时要考虑使用imfindcircles函数:
  • 如果图像对比度较低,这可能需要大量的预处理步骤,如对比均衡使用“histeq”或“adapthisteq”。
  • 如果第一步放大噪声,那么可以考虑使用一些去噪步骤之前。
  • 如果感兴趣的特性还不突出,可以使用某种特征提取或增强在使用“imfindcircles”之前。
  • 在许多情况下,正确的圆检测还需要调整“EdgeThreshold”,“敏感性”和“ObjectPolarity”参数。
  • 可以进一步使用“标准”输出过滤假圈如果高灵敏度结果太多虚假的圈子里。
  • imfindcircles也有两个独立的算法下罩,可以切换使用方法的参数。有时候一个算法给出更好的结果。
- - - - - - - - - - -
完全寻找圈在一个图像的另一种方法是使用函数“regionprops”,结合“偏心”属性。这往往是一个更灵活、健壮的方法,特别是在地区并不完美的圈子里,或对比度低。例如,当操作在一个二进制图像,“BW”,你可以做一些类似如下:
统计= regionprops (“表”BW,“重心”,“偏心”,“EquivDiameter”);
这返回每个地区在图像和它的离心率(衡量圆的东西是如何),近似圆的直径,和近似圆的中心。此外,你可以做一些过滤的结果少只接受古怪的地区,0.5和直径在80年和100年之间像素如下:
统计(统计数据。偏心率> 5:)= []
统计(统计数据。EquivDiameter > 80 |统计数据。EquivDiameter < 100:) = []
如果你想画个圈子,可以使用“viscircles”功能使用重心和半径作为输入。你可以找到更多的信息在功能上“regionprops”在以下页面:
//www.tianjin-qmedu.com/help/images/ref/regionprops.html
如果你想早些时候发布的文档,请导航到我们的文档档案:
//www.tianjin-qmedu.com/help/doc-archives.html?s_tid=hc_other_releases
3评论
佩德罗·席尔瓦
佩德罗·席尔瓦 2021年5月23日
编辑:佩德罗·席尔瓦 2021年5月23日
你好。
如果我试着像你建议的这行代码
统计(统计数据。偏心率> 5:)= []
我得到一个错误消息
“错误使用>
许多输入参数”
由于某些奇怪的原因,我似乎不能让它工作或绕……
有一个原因是hapenning或我怎么能去呢?我相当新的matlab,对不起……

登录置评。

更多的答案(0)

类别

找到更多的在修改图片的颜色帮助中心文件交换

s manbetx 845


释放

R2013b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!