二値化した画像の白の重心が知りたい。

53 次查看(过去 30 天)
パンダ
パンダ 2021-11-23
回答: Atsushi Ueno 2021-11-27
ラインがある画像を読み取り。ラインを白となるように閾値を 決定する. 白色に判定された座標䛾平均座標 を求めることでライン䛾重心点を計 算したいのですがどのようにしたらよいですか? この重心点が常に画像䛾中心に なるようにしたいです。.
  1 个评论
パンダ
パンダ 2021-11-23
telloを制御してこの重心点が常に画像の中心に なるようにしたいです。

请先登录,再进行评论。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2021-11-27
>白色に判定された座標䛾平均座標 を求めることでライン䛾重心点を計算したいのですがどのようにしたらよいですか?
上記関数で二値化画像の連続領域を認識でき、かつそのプロパティ(重心等)の計測も出来ます。
I = imread('lighthouse.png'); % これが「ラインがある画像」だとします
BW = rgb2gray(I) > 200; % 画像の二値化
imshow(BW);
s = struct2cell(regionprops(BW, 'basic'))'; % 'basic'=('Area','Centroid','BoundingBox')
s = sortrows(s, 1, 'descend'); % 'Area'で降順にソートし最大面積の連続領域を先頭要素にする
s(1,:) % [面積], [重心のx座標,y座標], [左上のx座標,y座標,幅,高さ]
ans = 1×3 cell array
{[58497]} {[278.6057 360.6186]} {[171.5000 154.5000 220 387]}
imshow(I); hold on;
plot(s{1,2}(1,1),s{1,2}(1,2),'b*'); % 重心を青色の'*'で表示
rectangle('Position',s{1,3},'EdgeColor','y'); % BoundingBoxを黄色の四角で表示
hold off;

更多回答(0 个)

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!