2

[この問題は別のフィルタを使用して解決されます。下部の更新を参照してください。]

私は C++ と ITK を使用しており、腰椎のボーン マップを表すグレースケール イメージがあります。キャニー フィルターを使用してその境界を検出しようとしています。この目的のために、公式の ITK ガイドのキャニー フィルターの実装を使用しています (そのコードをそのまま使用しているため、ここには貼り付けません)。ご覧のとおり、入力画像は非常にシンプルで、その輪郭を抽出するのは難しくありません。

閉じた曲線である必要があるボーンの境界を除いて、出力画像が完全に黒くなることを期待しています。ただし、ITK は、複数の「同心」境界線で構成される、右側の画像で確認できる結果を生成します。

この結果をどう説明しますか?そのアルゴリズムで何が起こっているかについて正式な説明はありますか? フィルターのパラメーター (バリアンス、upperThresold、lowerThresold) を変更しようとしましたが、うまくいきませんでした。パラメーターの組み合わせによっては完全に黒い画像が得られますが、この組み合わせよりも優れた結果が得られるものはありません。

腰椎の骨マップ - グレースケール画像 キャニーフィルタリングの奇妙な結果

更新:メモとして、「勾配マグニチュードフィルター」を使用して解決しました。そのフィルターを使用して、輪郭の明確な形状を取得します。そのため、この問題はもはや私にとって重要ではありませんが、好奇心のために投稿を開いたままにします. キャニー フィルターの動作に関するアイデアがあれば、テストできます。

4

0 に答える 0