画像オブジェクトのラベリングと、最大長の算出
14 ビュー (過去 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 件のコメント
参考
カテゴリ
Find more on オブジェクト解析 in Help Center and File Exchange
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!