How to draw a line through a set of points?

96 visualizaciones (últimos 30 días)
valerio auricchio
valerio auricchio el 3 de Nov. de 2020
Comentada: Rik el 10 de Jun. de 2021
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 comentarios
Rik
Rik el 3 de Nov. de 2020
question continued here
@Valerio: please don't open a new equivalent question.
John D'Errico
John D'Errico el 3 de Nov. de 2020
PLEASE DON'T ASK THE SAME QUESTION REPEATEDLY!
I've deleted my answer. since you already have answers to your last question.

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 3 de Nov. de 2020
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 comentarios
Image Analyst
Image Analyst el 3 de Nov. de 2020
Editada: Image Analyst el 3 de Nov. de 2020
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.
valerio auricchio
valerio auricchio el 3 de Nov. de 2020
No it's all right i find what i nedd thanks a lott!!1

Iniciar sesión para comentar.

Más respuestas (1)

Ameer Hamza
Ameer Hamza el 3 de Nov. de 2020
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 comentarios
Aniket Agrawal
Aniket Agrawal el 10 de Jun. de 2021
how can i store that curve produced using plot(x,y) in a variable.
Rik
Rik el 10 de Jun. de 2021
You can store a handle to the graphics object. Is that what you mean by storing the curve?

Iniciar sesión para comentar.

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by