画像オブジェクトのラベリングと、最大長の算出

7 vues (au cours des 30 derniers jours)
隆史
隆史 le 7 Déc 2022
この画像処理の目標は、画像中の複数のオブジェクトの最大長を求めることです。
そのために、1つの画像に対して、2つの処理を加えていきたいです。
1つ目:画像中に複数個存在する、オブジェクトをラベリングする。
2つ目:1つ1つのオブジェクトに対して、最大長を算出する。
何卒よろしくお願いいたします。

Réponses (1)

Atsushi Ueno
Atsushi Ueno le 9 Déc 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,:) = [] % 所定の大きさを超えた連続体のデータを除去する
MF = 287×3 table
MaxDiameter MaxAngle MaxCoordinates ___________ ________ ______________ 14.318 -155.22 {2×2 double} 17.464 166.76 {2×2 double} 16.763 -162.65 {2×2 double} 13.153 171.25 {2×2 double} 20 -126.87 {2×2 double} 19.313 158.75 {2×2 double} 16.155 158.2 {2×2 double} 13.601 -162.9 {2×2 double} 21.932 -155.77 {2×2 double} 17.493 -120.96 {2×2 double} 14.422 -146.31 {2×2 double} 15 -126.87 {2×2 double} 17.088 -159.44 {2×2 double} 15.524 165.07 {2×2 double} 21.095 -148.57 {2×2 double} 14.765 -151.7 {2×2 double}

Catégories

En savoir plus sur イメージ dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!