Tracing one line image

8 vues (au cours des 30 derniers jours)
anouar atmn
anouar atmn le 22 Déc 2021
Modifié(e) : Image Analyst le 22 Déc 2021
Hi,
I need to trace a oneline image for a project. A one line image is an drawing/image made with just one line. Im trying to write a code that traces the line and exports this to x y coordinates, (an array). Does anyone have a clue how to do this?
Thank you!!

Réponses (2)

Matt J
Matt J le 22 Déc 2021
Modifié(e) : Matt J le 22 Déc 2021
One way would be to use bwconvhull.
[x1,y1, x2,y2]=deal(5,6, 13,14); %the two end points
BW=false(20);
BW(y1,x1)=1;
BW(y2,x2)=1;
BW=bwconvhull(BW);
imshow(BW)
  3 commentaires
Matt J
Matt J le 22 Déc 2021
Modifié(e) : Matt J le 22 Déc 2021
I don't know what you mean by a complicated line. A line is a line (or rather a line segment) if and only if it is the convex hull of two points.
anouar atmn
anouar atmn le 22 Déc 2021
This is an example of what im trying to trace

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 22 Déc 2021
Modifié(e) : Image Analyst le 22 Déc 2021
I'd first call edge with 'Canny' to get your edges. Then I'd label the edges so that you draw each edge one at a time
[labeledEdges, numCurves] = bwlabel(edgeImage);
Then for each one, get the coordinates and put them in a loop to draw them
hold on; % Don't let plotting blow away image.
for k = 1 : numCurves
thisCurve = ismember(labeledEdges, k);
[rows, columns] = find(thisCurve);
for k2 = 1 : length(rows)
plot(columns(k2), rows(k2), 'r.', 'MarkerSize', 10)
drawnow;
pause(0.2);
end
end
hold off;

Community Treasure Hunt

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

Start Hunting!

Translated by