如何根据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'];