0

マトラブのバージョン: 7.8.0 (R2009a)

Matlab で Canny エッジ検出器を使用してエッジを検出していますが、私の問題では、X 個のエッジが必要です。もっといらない。エッジの場合、しきい値を 0 に設定することで返されます。たとえば、下の画像では次のようになります。bw = edge(lena,'canny',0); imshow(bw)

レナ、Highthresh = 0
私はまだいくつかの黒い領域を取得しています。これらの領域でさらにエッジを取得したいと考えています。では、canny が取ることができるしきい値の最小値は何ですか? 私はすでにゼロを与えています。

注:興味深いことに、Matlab はしきい値の負の値に対してエラーを出していません。しかし、それはまだ同じエッジを与えています。[bw1 t]= edge(j(:,:,2),'canny',-7577908988800);tを次のように与えています-3.0312 -7.5779

4

1 に答える 1

0

指定の公式ドキュメントedge

threshは、最初の要素が低しきい値で、2 番目の要素が高しきい値である 2 つの要素です。 vectorforを指定するscalarthresh、このscalar値がしきい値に使用されます...

上限しきい値だけでなく、下限しきい値を明示的に設定してみてください。

[bw1 t]= edge(j(:,:,2),'canny',[-inf SomethingBig])
于 2013-01-16T17:47:30.453 に答える