How to draw a line through a set of points?
117 次查看(过去 30 天)
显示 更早的评论
Hi, I have an image and a set of points present in the image. These points are not aligned with each other and I would like to draw a line that intersects the points
3 个评论
John D'Errico
2020-11-3
PLEASE DON'T ASK THE SAME QUESTION REPEATEDLY!
I've deleted my answer. since you already have answers to your last question.
采纳的回答
Image Analyst
2020-11-3
You forgot to attach your points, which would have been helpful.
Since your definition of "through" is a regression rather than to have the line connect all the points, use polyfit()
coefficients = polyfit(x, y, 1);
%xFit = x; % Option 1 : same number of points as the training set.
xFit = linspace(min(x), max(x), 2000); % Option 2 : lots of points, and not just where the training points are.
yFit = polyval(coefficients, xFit);
plot(x, y, 'r+', 'LineWidth', 2, 'Markersize', 15)
hold on;
plot(xFit, yFit, 'm-', 'LineWidth', 2)
7 个评论
Image Analyst
2020-11-3
编辑:Image Analyst
2020-11-3
Please attach your original image without the cyan markers on it, so I can get the points via thresholding:
mask = grayImage >= 200;
[y, x] = find(mask);
hold on
plot(x, y, 'c.');
hold off;
or else, supply me with a list of the x,y points you want to use.
And tell me the definition of the other line so I can find the angles of both of them and the acute angle between them.
更多回答(1 个)
Ameer Hamza
2020-11-3
If you have the coordinates then you can use plot()
img; % your image
x; % x-coordinates of points
y; % y-coordinates of points
imshow(img);
hold on
plot(x, y)
6 个评论
Rik
2021-6-10
You can store a handle to the graphics object. Is that what you mean by storing the curve?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!