主成分分析を使って画​像の重心を通る第1主​成分軸をプロットする​にはどうすればよいで​しょうか?

10 ビュー (過去 30 日間)
Yumi Iwakami
Yumi Iwakami 2017 年 11 月 24 日
コメント済み: Yumi Iwakami 2017 年 11 月 29 日
歪んだ楕円のような2値画像の重心を通る最大長の軸を得るために主成分分析を行っています.
始めに2値画像の白(=1のピクセル)のx座標をdata(:,1),y座標をdata(:,2)に記録しました.
主成分分析で,因子負荷量と主成分スコアを求めたいのですが,ここからがわかりません. ご教示いただければと存じます.

採用された回答

michio
michio 2017 年 11 月 24 日
画像に対しての主成分分析は興味深いですね。pca という関数を使うことになるとは思いますが、
のサンプルコード:「主成分の係数、スコア、分散」が参考になるでしょうか?
  1 件のコメント
Yumi Iwakami
Yumi Iwakami 2017 年 11 月 29 日
ありがとうございます.座標系のせいなのか,どうしてもずれて出てくるので,処理を見直します.

サインインしてコメントする。

その他の回答 (1 件)

Takuji Fukumoto
Takuji Fukumoto 2017 年 11 月 24 日
pcaの利用が必須、もしくは複雑な形状であればいろいろ考える必要がありそうですが、
最大長軸が明確に見えているなら、 image Processing Toolboxにある画像解析用の関数regionpropsで 'MajorAxisLength'を読めば1行で計測が可能です。
% 楕円画像を準備
BW = imbinarize(zeros(200));
BW(100,85:115) = 1;
se = strel('disk',40,8);
BW = imdilate(BW,se);
% 画像を回転して表示
BW = imrotate(BW,45);
figure, imshow(BW)
%%2値化画像解析用の関数を使って長軸の長さと回転を測定
stats = regionprops('table',BW,'MajorAxisLength','Orientation')
  1 件のコメント
Yumi Iwakami
Yumi Iwakami 2017 年 11 月 29 日
ありがとうございます.楕円が1つの場合はregionpropsで求まるのですが,複雑な形になると難しいようで,PCAを使う方法を考えたのですが,なかなかうまくいきませんでした.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!