関数 > 画像処理 > エッジ検出 > 例: Canny エッジ検出
例: Canny エッジ検出
canny関数を使用して画像内のエッジを検出します。このアルゴリズムは、エッジの場所を非常に正確に特定することで、疑似輪郭の発生を最小限に抑えます。
この例の使用方法については、画像処理の例についてを参照してください。
人工的な画像
1. READ_IMAGE関数を使用して人工的な画像を読み込みます。
クリックしてこの式をコピー
2. zoom関数を使用して画像を拡大し、WRITEBMP関数を使用してズームした画像をファイルに書き込みます。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. canny 関数を元の画像に適用して、結果をファイルに書き込みます。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. 新しい画像を挿入して、ズームした画像と比較します。
(pattern_zoomed.bmp)
(pattern_canny.bmp)
5. 上記の関数の引数の値を変えて、出力画像でのエッジに対する影響を調べます。
シグマの値が大きいほどエッジが粗くなりますが (ノイズが多い横長の帯には適しています)、あちこちでディテールが消滅しています (2 つのエッジが 1 つに結合しています)。
下のしきい値によって指定された勾配値より大きいエッジだけが残るので、下のしきい値が大きいほどエッジの画像は鮮明になっています。
上のしきい値が大きいほど、ヒステリシスしきい値化の効果がはっきりと現れます。
上のしきい値が大きいと、接続先のエッジ上に上のしきい値より輝度が大きいピクセルがないオブジェクトのエッジは完全に消えます。
自然な画像
頭部の画像内の境界を検出します。
1. 頭部の画像を読み込んでこれに canny 関数を適用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 結果をファイルに書き込みます。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 2 つの画像を挿入して比較します。
(brain.bmp)
(brain_canny.bmp)
canny 関数は、頭蓋と脳の境界などの最も目立つエッジを検出します。関数の引数の値を変更することで、ディテールレベルを調整できます。
4. 指紋の画像を読み込んでこれに canny 関数を適用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 結果をファイルに書き込みます。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. 2 つの画像を挿入して比較します。
(fingerp.bmp)
(fingerp_canny.bmp)
canny 関数は指紋の画像で主要な輪郭の境界を検出します。出力画像はパターン認識システムへの入力として使用できます。
7. 人物の画像を読み込んでこれに canny 関数を適用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
8. 結果をファイルに書き込みます。
クリックしてこの式をコピー
9. 2 つの画像を挿入して比較します。
(lena.bmp)
(lena_canny.bmp)
これは役に立ちましたか?