Counting pixel at an angle without rotating image
2 次查看(过去 30 天)
显示 更早的评论
How to count the pixels along the line (red) that is perpendicular to the major axis (blue) of a region, without rotating the image?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/150659/image.png)
0 个评论
采纳的回答
Image Analyst
2015-10-21
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 个评论
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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!