怎么用matlab读出已知的 10
已知二值图像上有一条白色的线,黑色背景,请问怎么用matlab编程,读出组成白色的线的所有点的坐标?最好有程序。感激不尽!!!...
已知二值图像上有一条白色的线,黑色背景,请问怎么用matlab编程,读出组成白色的线的所有点的坐标?最好有程序。感激不尽!!!
展开
1个回答
展开全部
这个比较简单,比如说我的这个图(你可以把我的这个图右键另存为a.jpg):
然后是我的代码:
clc;clear
I=imread('a.jpg');
I=rgb2gray(I);
p1=I>=180;p2=I<180;%二值化不是255就是0
I(p1)=0;I(p2)=255;
imshow(I)
[M,N]=size(I);
xmin=0;xmax=pi;%x的最大值最小值(实际的)
ymin=0;ymax=1; %y的最大值最小值(实际的)
[idx,idy]=find(I==255);
idx=M-idx+1;
idy=N-idy+1;
x=(xmax-xmin)/(max(idy)-min(idy))*(idy-min(idy))+xmin;
y=(ymax-ymin)/(max(idx)-min(idx))*(idx-min(idx))+ymin;
figure(2)
plot(x,y,'r.')
这是a.jpg二值化之后的图
最后画出来的图是
这幅图很明显是y=sin(x)的函数图像,就这样x y坐标可以提取出来了,你知道了吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询