画像オブジェクトのラベリングと、最大長の算出
4 ビュー (過去 30 日間)
古いコメントを表示
この画像処理の目標は、画像中の複数のオブジェクトの最大長を求めることです。
そのために、1つの画像に対して、2つの処理を加えていきたいです。
1つ目:画像中に複数個存在する、オブジェクトをラベリングする。
2つ目:1つ1つのオブジェクトに対して、最大長を算出する。
何卒よろしくお願いいたします。
0 件のコメント
回答 (1 件)
Atsushi Ueno
2022 年 12 月 9 日
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 件のコメント
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!