matlab 读取一张图片,选取图片中的特定点,标注出点的位置与坐标信息,同时存储坐标信息为之后的处理提供数据
功能:
1.读取一张图片,选取图片中的特定点数,记录下坐标信息;
在网上大多数都是用的ginput()和getpts()两个函数,getpts()标注出点太丑,而且十字光标也对眼睛不是很友好,所以采用了ginput(), 但发现十字光标太大,同时黑线太黑(我自己的图片就本来很黑,这样一来更黑了,根本看不清),改了一下源程序,复制了一个自己的my_ginput() 函数,更加的符合个人审美。
2.在图像上标注出点的位置,更知道自己标的点是否正确;
3.将点的坐标信息加入路线中;
close all;
clear; clc;
n=input( 'please input number of points n=');
pic=imread('20201106_161635.jpg');
I=imshow(pic);
loc_points=zeros(n,2);
%[x,y]=getpts;
for i=1:1:n
hold on;
[x, y]=my_ginput(1);%自己修改的matlab源码一小部分
hold on;
plot(x,y,'r.')%将点在其中标记出来
loc_points(i,1) = x;
loc_points(i,2) = y;
str=[' X:' num2str(x') ', Y:' num2str(y')];
text(x,y,cellstr(str))
end