如何为我的圆形霍夫变换选择“灵敏度”值?

时间:2016-03-20 18:02:29

标签: matlab math image-processing mathematical-optimization

我正在使用圆形霍夫变换来检测图像中的圆圈。圆形霍夫函数有四个基本参数:

  1. 图片名称
  2. 半径范围
  3. 物体极性(对于我的情况,它是黑暗的)
  4. 灵敏度值(默认值 - 0.5)
  5.   

    [centers,radii] = imfindcircles(img1,[r1   r2],'ObjectPolarity','dark',......'Sensitivity',sens);

    灵敏度值在0和1之间变化。在此,我将灵敏度值在0.9和0.95之间变化(检测到的圆数随灵敏度值的增加而增加。最大值= 1)。对于不同的图像,在不同的灵敏度值下产生最佳结果。

    Input image - 1.jpg

    假设对于半径范围为[3,8]的'1.jpg',该函数为不同的灵敏度值提供了不同的结果(圆圈数):

    • 0.90 - > 553
    • 0.91 - > 958
    • 0.92 - > 1412
    • 0.93 - > 1799
    • 0.94 - > 2164
    • 0.95 - > 2453
    • 0.96 - > 2806
    • 0.97 - > 3170
    • 1.00 - > 6393

    但对于此图像,在0.94和0.95之间找到更准确的值(可以是0.941,0.942 ......,0.949等)。计数是2200-2400。如果我使用[0.96,1]之间的值,它有很多误报。

    我需要一个功能,它必须告诉我何时停止根据计数的突然增加来改变灵敏度。(即)达到稳定状态。

    对于上述情况,它在[0.94-0.96]之间达到稳定状态。(即)输出值在这些点之间逐渐变化(2100,2400,2800)。

    Variation of count with sensitivity

    是否有任何数学技术可以根据值的变化率来停止计数? 或者还有其他更好的解决方案可以解决我的问题吗?

0 个答案:

没有答案