如何根据matlab拟合的曲线读出像中点的坐标值?
楼主的意思是:已知图片上的一条曲线,如何获取该曲线上点的坐标(x,y)。
下面有段程序,是本人读曲线坐标所写,看看对楼主是否有帮助:
clc
clear all
im1 = imread('runx2.jpg'); %楼主在此替换成自己的图片.
im = rgb2gray(im1);
im = im(end:-1:1,:);
%imshow(im)
[m,n]=size(im);
cordx=[];
cordy=[];
for i=1:m
for j=1:n
if im(i,j)<100 %这个参数100可以在 0~255 之间随意改变,值越小越精确.
cordx=[cordx i];
cordy=[cordy j];
end
end
end
x=[];y=[];%得到的坐标
l=2;%此处参数可调
for k=1:l:length(cordx)
x=[x cordx(k)];
y=[y cordy(k)];
end
[xx ind]= sort(y);
yy = x(ind);
plot(xx,yy,'+')
xxx = unique(xx);
yyy = zeros(size(xxx));
for k = 1:length(xxx)
indxx = xx==xxx(k);
n = sum(indxx);
yyy(k) = sum(indxx.*yy)/n;
end
figure
plot(xxx,yyy,'+')
runx2 = [xxx' yyy'];