chenjc18 发表于 2008-12-11 19:20

如何获取 灰度图上 某些点的坐标值(当然包括此点的高度值)?

我要做表面粗糙度的分析,具体来说是这样的:
通过原子力显微镜获取灰度图,在灰度图上画出采样线(如 左侧灰度图上的红色线条 所示),于此同时获取此红色线条上所有的点的坐标值,画出像右侧轮廓图一样的图形

我现在的遇到的困难是:1. 如何使用鼠标画出采样线?
                                       2.如何获取采样线上的坐标值?

请高数帮帮忙,谢谢了。

对了,:@( fig 太大 传不上来,这样吧,您感兴趣的话 我会把资料发给您:@)
我的QQ:1034877411      email:1034877411@qq.com

sogooda 发表于 2008-12-11 19:37

回复 楼主 chenjc18 的帖子

图像处理方面的东西不是很熟悉,不过感觉上楼主的问题也不是不能解决。
1.画出采样线比较容易,plot就可以。用鼠标画可能就不那么容易了,是说鼠标点出两个端点那样画吗?如果是的话,可能需要调用figure的回调函数——这个不太懂,看看GUI编程方面的基础知识应该能找到。还有就是,如果不是特别需要,可以用plot画代替鼠标点取。
2.灰度图应该就是一个三维矩阵吧?Width*Height*Deepth,这样只要对采样线的坐标取整得到矩阵的下标,那么就可以得到灰度值——也就是你b中所需要的值了。

sogooda 发表于 2008-12-11 19:38

对了,好像jpg格式有些自己的规定,稍微复杂些,可以试着把jpg转换成bmp之后再处理可能方便点儿。

chenjc18 发表于 2008-12-11 19:58

原帖由 sogooda 于 2008-12-11 19:37 发表 http://www.chinavib.com/forum/images/common/back.gif
图像处理方面的东西不是很熟悉,不过感觉上楼主的问题也不是不能解决。
1.画出采样线比较容易,plot就可以。用鼠标画可能就不那么容易了,是说鼠标点出两个端点那样画吗?如果是的话,可能需要调用figure的回调函数 ...

首先 谢谢您的回复

就是想做个界面 由鼠标点出两个端点,由此连成的直线作为采样线;
Width、Height、Deepth 这些数据我都有的 ;

还有 采样线不一定都是像图上画得那样水平的 也有的是与水平向有一定角度的;

ydlcsu 发表于 2008-12-11 22:06

原帖由 chenjc18 于 2008-12-11 19:58 发表 http://www.chinavib.com/forum/images/common/back.gif


首先 谢谢您的回复

就是想做个界面 由鼠标点出两个端点,由此连成的直线作为采样线;
Width、Height、Deepth 这些数据我都有的 ;

还有 采样线不一定都是像图上画得那样水平的 也有的是与水平向有一定角度 ...

如果这样的话,主要的问题是如何判断哪些像素点落在直线上了,不知道谁有比较好的办法?

[ 本帖最后由 ydlcsu 于 2008-12-11 22:08 编辑 ]

majunlei1984 发表于 2008-12-12 10:53

刚好翻书看到improfile函数
I=imread('图像');
imshow(I,[ ]);
=improfile

所得的CX,CY就是鼠标划过的线上的坐标值C值是此线上的灰度值
LZ看看help improfile吧 希望能帮你
页: [1]
查看完整版本: 如何获取 灰度图上 某些点的坐标值(当然包括此点的高度值)?