Angle recognition of objects in the image

31 ビュー (過去 30 日間)
tao wang
tao wang 2022 年 3 月 2 日
コメント済み: tao wang 2022 年 3 月 2 日
Like this picture
I want to calculate the angle of the line represented by the two red arrow strips,I want to calculate the angle of the line represented by the two red arrow strips
I have used the program to get the black-and-white picture. I want to know how to get the angle through the black-and-white picture below
Is there any way to get the desired results after getting such pictures,thanks
(edited by DGM to move comment-as-answer into the question body)
  3 件のコメント
tao wang
tao wang 2022 年 3 月 2 日
thank you
tao wang
tao wang 2022 年 3 月 2 日

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

採用された回答

DGM
DGM 2022 年 3 月 2 日
編集済み: DGM 2022 年 3 月 2 日
This might be a start. This uses the Hough transform tools from IPT.
A = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/911775/image.png');
A = rgb2gray(A);
B = A<128;
% find angle of dominant line
[H,T,R] = hough(B);
P = houghpeaks(H,1,'threshold',ceil(0.3*max(H(:))));
lines = houghlines(B,T,R,P,'FillGap',50,'MinLength',10);
% show line
imshow(B); hold on;
plot([lines.point1(1) lines.point2(1)],[lines.point1(2) lines.point2(2)])
% estimated rotation angle
rotangle = lines.theta
rotangle = -39
This might take some tweaking to work more generally with other images. It might be necessary to get more than the dominant line in the call to houghpeaks() and then try to find some common angle between those. Bear in mind that the angles returned may be complements of each other, so it may be necessary to conditionally complement them in order to compare/winnow/average them.
  1 件のコメント
tao wang
tao wang 2022 年 3 月 2 日
Thank you very much for your patience. I'll take a look at this program first

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by