2値化した画像内のピ​クセル周りに0と1が​それぞれいくつあるか​を調べる方法が知りた​い

조회 수: 12 (최근 30일)
有那 小泉
有那 小泉 2020년 11월 7일
댓글: 有那 小泉 2020년 11월 12일
matlab R2020b(Windows)を使っております。
以下の2値化した画像にある1つのピクセルの周り(8方向)に"0"と"1"がそれぞれいくつあるかを調べたいです。
画像内にある全てのピクセルを調べたく、結果的に"0"が3つあるかどうか等を判断するようにしたいです。
説明が苦手で申し訳ございません。
宜しくお願い致します。

채택된 답변

Kenta
Kenta 2020년 11월 7일
こんにちは、計算が速くなるようにいろいろとコーディングの工夫は考えられるのですが、まずは、最もシンプルな方法を提案させて頂きます。
ちょうど画像の左上から1ピクセルごとに周辺の0の数を数える、ということを想像してください。同じ操作を繰り返すので、forを使えばよく、ひとまず画像の左から右なので、for m=1:size(I,2)などとします。Iは上の2値化画像で、sizeは画像のサイズ、2は横方向を意味します。
そして、要素を検索するためにfind関数を使って、find(xx==0)とします。xxは対象とする画像の範囲なので I(m-1:m+1,n-1:n+1)とすればよいです。
I=imread('binary_image.jpg');
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=find(xx==0);
I2(n,m)=num;
end
end
計算時間は置いておいて、このような感じで書いていけば、周辺の0の数は数えられると思います。適宜目的にあうように加筆・修正ください。
  댓글 수: 3
Kenta
Kenta 2020년 11월 12일
num=length(find(xx==0));
失礼いたしました。としてみてください
有那 小泉
有那 小泉 2020년 11월 12일
ありがとうございます!
解決致しました!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!