Counting pixel at an angle without rotating image

How to count the pixels along the line (red) that is perpendicular to the major axis (blue) of a region, without rotating the image?

 採用された回答

Image Analyst
Image Analyst 2015 年 10 月 21 日

0 投票

You know the centroid (xCentroid, yCentroid), and you know the slope (because you drew the line). The perpendicular slope is -1/mainSlope. The equation of a line is (y-y0) = slope * (x-x0). Or
perpSlope = -1 / mainSlope;
y = perpSlope * (x - x0) + y0;
Put in (x0,y0) of the point you want to take the cross section of - the point along the main slope. Then put in x = 1, for the left edge, and x = (number of columns in the image) for the right edge. That will get you two endpoints of the line. Then just call improfile() to get a line drawn across, and use find() to determine the x and y locations of where the line crosses the white region.

2 件のコメント

Hg
Hg 2015 年 10 月 21 日
This works! Image Analyst, thanks for being a great help!
Image Analyst
Image Analyst 2015 年 10 月 21 日
You're welcome. I'm glad you were able to get it working with just the few steps that I outlined. And thanks for Accepting the answer.

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

その他の回答 (0 件)

タグ

質問済み:

Hg
2015 年 10 月 21 日

コメント済み:

2015 年 10 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by