How to join two points, on a 'map', created with the command 'ginput'?
2 次查看(过去 30 天)
显示 更早的评论
So, this is my code for the two dots. But I don't know how to unite them like in the picture. (don't know how to make that dotted line)
Code:
harta=imread('harta.jpg');
imshow(harta)
[xA,yA]=ginput(1);
[xB,yB]=ginput(1);
harta=insertMarker(harta,[xA yA],'*','color','r');
harta=insertMarker(harta,[xB yB],'*','color','r');
imshow(harta)
0 个评论
采纳的回答
Mehmed Saad
2020-5-10
编辑:Mehmed Saad
2020-5-10
one way to do that is using line and then getting the frame
harta = imread('harta.jpg');
imshow(harta)
[xA,yA]=ginput(1);
[xB,yB]=ginput(1);
harta=insertMarker(harta,[xA yA],'*','color','r');
harta=insertMarker(harta,[xB yB],'*','color','r');
imshow(harta)
hold on,line([xA xB],[yA yB],'LineStyle',':','Color','r'),hold off
harta = getframe;
harta = harta.cdata;
imshow(harta)
There must be someother command which directly can do that.
insertShape maybe
Edit1: InsertShape will draw solid line
imshow(harta)
[xA,yA]=ginput(1);
[xB,yB]=ginput(1);
harta=insertMarker(harta,[xA yA],'*','color','r');
harta=insertMarker(harta,[xB yB],'*','color','r');
harta = insertShape(harta,'line',[xA yA xB yB],'Color','r');
imshow(harta)
更多回答(1 个)
Stijn Haenen
2020-5-11
You can use this code, which contains the function ginput_norm: https://nl.mathworks.com/matlabcentral/fileexchange/75469-ginput-with-normalized-coordinates-of-the-figure-window
close all
clear
figure1=figure(1);
axes('Parent',figure1,...
'Position',[0 0 1 1]);
set(figure1,'Units','Normalized');
mapsIm=imread('maps.jpg');
imshow(mapsIm);
a=ginput_norm(2);
annotation(figure1,'line',[a(1,1) a(2,1)],...
[a(1,2) a(2,2)],'LineStyle','--');
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!