我是matlab初学者,请大家帮忙啊!!!matlab中根据已知线得到点坐标的方法!!!!跪求!感激不尽
我在matlab中用contour算法画出等高线图,并且知道线上2,3个点的坐标,想问一下有没有什么方法能知道更多点的坐标?如果有是什么方法?请详细说明,详细说明!!!谢...
我在matlab中用contour算法画出等高线图,并且知道线上2,3个点的坐标,想问一下有没有什么方法能知道更多点的坐标?如果有是什么方法?请详细说明,详细说明!!!谢谢了
展开
2个回答
展开全部
告诉你一个简单粗暴的方法,也是科研人员一般处理参考文献中数据图表的方法。
将等高线图,保存为黑白二色图bmp文件,可以使用windows自带的画图板另存图片(注意确保等高线为黑线,这样更精确),然后用matlab读图命令A=imread('f:\a.bmp'),将该bmp文件以矩阵的形式读入matlab,其中矩阵元素代表对应像素点的颜色为0表示黑色,为1表示白色,这样只需要找到矩阵中每一行中0元素的位置Aij(i为行号,j为列号),对行列号分别乘以坐标缩放比例,就可以知道原曲线上所有节点的坐标。要是不清楚的地方我们可以再讨论
将等高线图,保存为黑白二色图bmp文件,可以使用windows自带的画图板另存图片(注意确保等高线为黑线,这样更精确),然后用matlab读图命令A=imread('f:\a.bmp'),将该bmp文件以矩阵的形式读入matlab,其中矩阵元素代表对应像素点的颜色为0表示黑色,为1表示白色,这样只需要找到矩阵中每一行中0元素的位置Aij(i为行号,j为列号),对行列号分别乘以坐标缩放比例,就可以知道原曲线上所有节点的坐标。要是不清楚的地方我们可以再讨论
更多追问追答
追问
谢谢你的回答,可是还想问下:我已经把文件保存为黑白二色图bmp格式,在matlab中输入A=imread('相应地址'),之后回车键,出来的都是好多个"255"这个值,是哪里操作错误呢?
还有关于后面说的放缩。‘坐标放缩比例’这个怎么样知道?
额,麻烦你了。
追答
通过A=imread('相应地址'),实际上是把图片信息,保存为矩阵形式,矩阵元素表示对应节点的RGB值,比如Aij代表原图像中第i行,第j列个像素点的颜色。运行完这条指令后,你可以在Matlab的workspace中查看矩阵A的结构。
至于你出现的很多255,根据我的经验,虽然你看上去是黑白的,你的图片仍然是彩色图,你可以验证一下矩阵A是否是三维矩阵,也就是m*n*3这样的结构,最后的3层分别保存像素点RGB三个分量的值,也就是平面上的一个点需要用三个数值来衡量其色彩值。这样产生的三维数组A不容易处理。我建议你,你还是应该通过下面的操作获取真正意义上的二色图,然后在处理二维矩阵A
1.首先注意图片截取范围是等高线图中xstart<x<xend,ystart<y<yend的区域,记下这里的坐标端点值(xstrat,xend,ystart,yend),之后的坐标缩放会用到
2.windows开始》程序》附件》画图 打开原图片,把图片中除了等高线部分的色斑或其他什么多余东西一律用橡皮擦干净,以免对后面的处理产生噪声污染。保证图片中有色部分只有待提取的等高线数据,其他部分全部是白色。文件》另存为,选择保存类型为“单色位图”,文件名假设为‘a.bmp’
3.然后在matlab,执行指令A=imread('相应地址'),此时矩阵A为二维矩阵,假设结构是m*n,并且矩阵元素要么是0,要么是1。0代表黑色,1代表白色。记下这里的矩阵行列数m、n,之后的坐标缩放会用到。这时你可以使用指令imshow(A),来复原等高线,查看matlab读取情况。
4.找出矩阵A每行中0元素的位置比如Aij=0。则说明图像中第i行第j列像素所对应的数据点位于原等高线上。查找A中第i行0元素位置可以使用命令jpos=find(A(i,:)==0),这里jpos可能是多个点。
5.现在要把行列号i,j转为数学坐标系中的坐标x,y。注意这里A的第一行代表的是y=yend那条线,
A的第一列代表的是x=xstart这条线,A的第m行代表的是y=ystart那条线,
A的第n列代表的是x=xend这条线,。所以这种转换关系可以写作
x=(xend-xstart)/n*j+xstart
y=yend-(yend-ystart)/m*i
整个思路就是这样,实现起来也比较容易。说的有些罗嗦,希望能帮助到你
2011-12-06
展开全部
大概可以插值吧 具体来说就是用已知的几个点拟合一个函数,其他的点近似在函数上。有很多方法。等高线也是用已知点画出的吧。
你查一下插值的方法吧,具体你可以搜一下像是griddata之类的用法。我也算是初学者,你还是亲自查一下好点。
你查一下插值的方法吧,具体你可以搜一下像是griddata之类的用法。我也算是初学者,你还是亲自查一下好点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询