【问题标题】:Minimum threshold in Matlab Canny edge detectorMatlab Canny边缘检测器中的最小阈值
【发布时间】:2012-12-31 02:38:37
【问题描述】:

Matlab 版本:7.8.0(R2009a)

我在 Matlab 中使用 Canny 边缘检测器来查找边缘,但是对于我的问题,我需要一些 X 数量的边缘。我需要更多不。边缘然后通过将阈值设置为0来返回。 例如下图:bw = edge(lena,'canny',0); imshow(bw)


我仍然得到一些黑色区域。我想在这些地区获得更多优势。那么,canny 可以采用的阈值最小值是多少?我已经给零了。

注意:有趣的是,Matlab 不会对阈值的负值给出错误。但它仍然具有相同的优势。 [bw1 t]= edge(j(:,:,2),'canny',-7577908988800); 将 t 作为 -3.0312 -7.5779

【问题讨论】:

    标签: matlab edge-detection threshold


    【解决方案1】:

    official documentationedge 指定

    thresh 是一个双元素 vector,其中第一个元素是低阈值,第二个元素是高阈值。如果您为thresh 指定scalar,则此scalar 值用于 阈值...

    尝试明确设置低阈值,而不仅仅是高阈值:

    [bw1 t]= edge(j(:,:,2),'canny',[-inf SomethingBig])
    

    【讨论】:

    • 感谢您的回复,但是将高阈值设置为较大的值(在 matlab 中为 1),将给我很少或没有边缘。我尝试将两者都设置为 -inf 但我得到的结果相同。边数为 0 :(
    • @MangatRai,不要盲目猜测有效阈值,而是处理您在未指定阈值时获得的 t 的值。
    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多