matlab R2020b(Windows)を使っております。
2値化した画像の1つのピクセルの回りに0がいくつあるかを調べる為に以下のプログラムを教えて頂きました。
img = imread('sen.jpg');
I = imbinarize(rgb2gray(img));
I2=zeros(size(I));
for m=2:size(I,2)-1
for n=2:size(I,1)-1
xx=I(n-1:n+1,m-1:m+1);
num=length(find(xx==0));
2I(n,m)=num;
end
end
numにそれぞれのピクセルの情報が入っているのかとおもったのですが、numの数値は0になっていました。
forを使っていますので、左上の一番最初に測定したものか、右下の一番最後に測定したものが入っているのか?と考えていますが、全てのピクセルの情報を纏めるにはどのようにすればよろしいでしょうか。
最終的に行いたいものは全てのピクセルの周りの情報を集め、周りに0が一定数以下のものはそのピクセルを膨張する、というものです。
そのために以下のプログラムを組もうと考えています。
se = strel('square',3);
kazu=find(num>2);
O = imdilate(kazu,se);
imshow(O);
また、使用する画像は以下になります。
説明が難しく申し訳ございません。
宜しくお願い致します。
0 Comments
Sign in to comment.