fitting rectangle through data points

31 ビュー (過去 30 日間)
ha ha
ha ha 2019 年 5 月 25 日
コメント済み: darova 2019 年 5 月 31 日
Let's say I have the data as shown in OXY plane(Here, I show 2 examples):
How can I fit the rectangle through data:

採用された回答

darova
darova 2019 年 5 月 26 日
If your data always has V form (look like triangle). Tree corners can be found. Find farthest corners using pdist2()
img.png
Use wikipedia formula to find the 3rd corner of a triangle (wiki)
img1.png
Divide points into 2 groups. If distance point-corner smaller than radius:
img2.png
Use polyfit() to calculate coeffiecients of line. What if angle between calculated lines is not 90 degree?
  3 件のコメント
Image Analyst
Image Analyst 2019 年 5 月 31 日
Do a web search for "Minimum bounding perimeter MATLAB"
darova
darova 2019 年 5 月 31 日
Use pdist2() to find farthest corners. Draw a line from those points. Find another corners
img.png
Divide points into 4 sets using some tolerance distance to lines
img1.png
Apply polyfit() to each set
img2.png
It's the best i can

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2019 年 5 月 25 日
What I would try first is to use principal components analysis ("PCA") to identify the two axes. Use pca() if you have the stats toolbox. Then you can fit lines with polyfit() going through the points along each PC. Use the points at the limits to determine where the lines start and stop. Sorry, no I don't have code that does this already - I'd have to develop it just as you would.
Another method you might also try is RANSAC.
  1 件のコメント
ha ha
ha ha 2019 年 5 月 25 日
編集済み: ha ha 2019 年 5 月 25 日
Thanks @Image Analyst for your kind.
Can you show example code of rectangle fitting using pca? I try to follow your advice but I am not totally understand.

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

カテゴリ

Help Center および File ExchangeDimensionality Reduction and Feature Extraction についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by