2値化した画像内のピクセル周りに0と1がそれぞれいくつあるかを調べる方法が知りたい
36 views (last 30 days)
Show older comments
matlab R2020b(Windows)を使っております。
以下の2値化した画像にある1つのピクセルの周り(8方向)に"0"と"1"がそれぞれいくつあるかを調べたいです。
画像内にある全てのピクセルを調べたく、結果的に"0"が3つあるかどうか等を判断するようにしたいです。
説明が苦手で申し訳ございません。
宜しくお願い致します。
0 Comments
Accepted Answer
Kenta
on 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 Comments
More Answers (0)
See Also
Categories
Find more on イメージ タイプの変換 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!