How to calculate the inclination angle of whole box which their 4 vertices are stored in cell array with respect to the horizontal x-axis?

2 ビュー (過去 30 日間)
How to calculate the inclination angle of whole box which their 4 vertices are stored in cell array with respect to the horizontal x-axis?
There is cell with size 1*23 , In each part of cell there are four (x,y) coordinates stored (23 Bounding boxes coordinates )as the following:
c = {{[x1 , y1], [x2, y2], [x3 , y3 ], [x4 , y4 ]}, {[x1 , y1], [x2, y2], [x3 , y3 ], [x4 , y4 ]}, ........... }
The attached file is xy coordinates of the vertices of the boxes.
The coordinates are in the order:
(left-bottom), (right-bottom), (left-top), (right-top).where each coordinate is an (x, y) pair.. i.e([x1 , y1], [x2, y2], [x3 , y3 ], [x4 , y4 ])
  2 件のコメント
Image Analyst
Image Analyst 2022 年 5 月 12 日
Not sure all those brackets make sense. Can you attach your c in a .mat file?
If they came from regionprops why didn't you just do this:
props = regionprops(mask, 'BoundingBox');
allBB = vertcat(regionprops.BoundingBox); % Put into an N-by-4 matrix.
M
M 2022 年 5 月 12 日
編集済み: M 2022 年 5 月 12 日
@Image Analyst, I have attached the file please check it.

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

採用された回答

Matt J
Matt J 2022 年 5 月 12 日
編集済み: Matt J 2022 年 5 月 12 日
boxes = cellfun(@(z) cell2mat(z(:)) ,c ,'UniformOutput' ,false)
boxes=cat(3,boxes{:});
rays=normalize( boxes(4,:,:)-boxes(3,:,:) ,2 ,'n');
angles= squeeze( acosd( rays(:,1,:) ) );
  11 件のコメント
Matt J
Matt J 2022 年 5 月 13 日
編集済み: Matt J 2022 年 5 月 13 日
That's what the wiki page explains. The first element of the ray is the cosine of the angle with the x-axis.
M
M 2022 年 5 月 13 日
@Matt J I got it, Thank you very much .

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMap Display についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by