画像オブジェクトのラベリングと、最大長の算出
2 views (last 30 days)
Show older comments
この画像処理の目標は、画像中の複数のオブジェクトの最大長を求めることです。
そのために、1つの画像に対して、2つの処理を加えていきたいです。
1つ目:画像中に複数個存在する、オブジェクトをラベリングする。
2つ目:1つ1つのオブジェクトに対して、最大長を算出する。
何卒よろしくお願いいたします。
0 Comments
Answers (1)
Atsushi Ueno
on 9 Dec 2022
Image Processing Toolbox を使えば、下記で目的が実現されます。下記コードにおいて、Lは画像と同サイズの行列で、認識された連続体(白の塊)毎に整数の番号が振られたデータになっています。MFには、同連続体毎の最大長が得られています。1番目のデータが画像サイズとほぼ同じの誤認識になっていますが、所定の大きさを超えたデータを除去すれば問題ないでしょう。
I = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1222312/image.jpeg');
BW = imbinarize(im2gray(I));
L = bwlabel(BW,4); % 1つ目:画像中に複数個存在する、オブジェクトをラベリングする。
MF = bwferet(L,'MaxFeretProperties'); % 2つ目:1つ1つのオブジェクトに対して、最大長を算出する。
MF(MF.MaxDiameter > 500,:) = [] % 所定の大きさを超えた連続体のデータを除去する
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!