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

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

Réponse acceptée

Kenta
Kenta le 7 Nov 2020
こんにちは、計算が速くなるようにいろいろとコーディングの工夫は考えられるのですが、まずは、最もシンプルな方法を提案させて頂きます。
ちょうど画像の左上から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 commentaires
Kenta
Kenta le 12 Nov 2020
num=length(find(xx==0));
失礼いたしました。としてみてください
有那 小泉
有那 小泉 le 12 Nov 2020
ありがとうございます!
解決致しました!

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!