1

matlabで単純なバイナリ再構成アルゴリズムを書きたいと思います。これまでのところ、このアルゴリズムが開口部の後に使用され、開口部に接続されている元の画像の断片を元に戻すことがわかっています。また、大きなオブジェクトの小さな特徴を歪めることなく、大きなオブジェクトから切り離された小さな領域を削除することもわかりました。

これは擬似コードです:

1. J = I o Z; %open input image with some structre element
2. T = J;
3. J = J  Z(k) % Dilate J with Z(k). this is my first problems. if Z in first line is structure element, then what is Z(k)?
4. J = I AND J % my second problem. how to AND these two on matlab.
5. if J ~= T go to 2.
6. else stop and J is the reconstructed image.

入力として次の画像があるとします。

入力画像

再構成された画像は次のようになります。

再構成画像

上記のコードを使用して、これまでに次のように記述しました。

img = imread ('Input.jpg');
img = im2bw(img, 0.8);
J = bwmorph(img,'open');
T = J;
J = bwmorph(J, 'dilate');

私の質問は、MATLAB でこれを正しく終了する方法です。

私の2番目の質問は、言及された例の構造要素imdilateの代わりに何を使用しようとしているのかということです?bwmorph

4

1 に答える 1

1

上記のコメントに基づいて、次のようなことをしたいと思うでしょう:

img = imread ('Input.jpg');
img = im2bw(img, 0.8);
J = bwmorph(img,'open');
THRESH = 0;
while (1)
    T = J;
    J = bwmorph(J, 'dilate');
    J = img & J;
    if (sum(T(:) - J(:)) <= THRESH)
        break;
    end
end

疑似コードに基づいて、THRESH = 0 (つまり T = J) に設定できますが、実際には多少の違いを受け入れる場合があります。

于 2013-06-26T11:38:36.440 に答える