タスクを実行しようとしていますが、2 つの問題があります。1 つ目は、画像を撮影して、表面のエッジを検出する必要があります。
これは元の画像です:
これが結果になります。
しかし、私はこれを得ました:
私は非常に単純なコードを使用しています:
filter=[1 2 1;0 0 0;-1 -2 -1];
image=imread('boat.jpg');
image_edge=filter2(filter,image);
imshow(image_edge);
ご覧のとおり、非常に簡単ですが、同じイメージはありません。私のフィルターは間違っていますか?
2 番目の問題は次のとおりです。混合係数の行列 を作成する方法がわかりませんmask(x,y)
。この行列は、エッジに基づいて作成する必要があります (平坦な領域では値 1 で、エッジに向かって徐々に 0 に減少します)。どのコマンドを使用すればよいですか?