找回密码
 注册
Simdroid-非首页
查看: 1753|回复: 40

我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

[复制链接]
发表于 2005-6-24 12:23:57 | 显示全部楼层 |阅读模式 来自 湖北武汉
我看到很多人用PS读CT图像中的点坐标,然后建模。我原来写过一个程序,是用来自动读取图像中点的坐标的,或者用鼠标点击生成点的坐标,所有数据都自动存放在一个TXT文件里面。我的想法是在点取坐标点的时候,就自动生成ANSYS命令流相关的点生成命令行,放在文本里面,大家建模的时候直接拷贝进去就可以了。另外,我设置一个X,Y,Z的坐标比例尺,以便适应不同的坐标。当然,设置原点坐标也可以。大家有什么意见可以提,我争取一次做好。这样后面的修改量少一点。
发表于 2005-6-24 13:26:42 | 显示全部楼层 来自 陕西西安

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

Simdroid开发平台
hrhr,当然支持啊
建议:1,能否支持dicom
         2,最终要强大的话,可以试试能否生成三维点云数据,那就perfect了
 楼主| 发表于 2005-6-25 10:19:33 | 显示全部楼层 来自 湖北武汉

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

程序名称CT2ANSYS

程序流程

读图片中点的坐标
k,npt,x,y,z生成点,其中z点为等间距数值
然后由点生成面,
但是在点分别不均匀的时候,生成体有困难。目标是用点生成四面体。
发表于 2005-6-25 11:09:38 | 显示全部楼层 来自 陕西西安

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

希望大家多出主意
置顶
发表于 2005-6-26 04:41:37 | 显示全部楼层 来自 美国

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

哇,如果有这么 个程序,真挺好的
不过,感觉还是有些难度的,期待ing
alexqxp wrote:
我看到很多人用PS读CT图像中的点坐标,然后建模。我原来写过一个程序,是用来自动读取图像中点的坐标的,或者用鼠标点击生成点的坐标,所有数据都自动存放在一个TXT文件里面。我的想法是在点取坐标点的时候,就自动生成ANSYS命令流相关的点生成命令行,放在文本里面,大家建模的时候直接拷贝进去就可以了。另外,我设置一个X,Y,Z的坐标比例尺,以便适应不同的坐标。当然,设置原点坐标也可以。大家有什么意见可以提,我争取一次做好。这样后面的修改量少一点。
发表于 2005-6-26 09:45:03 | 显示全部楼层 来自 上海

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

我觉得首先要能够正确读取Dicom格式,不是一次扫描的CT数据大小不一样,也要设定大小的。点分布不均匀的地方最好要插值。
发表于 2005-6-26 12:32:29 | 显示全部楼层 来自 天津

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

个人认为,首先要标定,是否可以读dicom 也无所谓吧,可以转成jpg或者其他格式的啊,我想是不是可以生成一层层的数据,由您的程序叠加成三维的点云数据流文件,可以被ansys 或者是proe 、UG 等软件直接识别的。直接建立面或者体。

期待
发表于 2005-6-26 23:14:30 | 显示全部楼层 来自 陕西西安

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

他对ANSYS的命令流不熟悉,希望大家能够给予帮忙
发表于 2005-6-27 06:43:43 | 显示全部楼层 来自 广东广州

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

upsilon wrote:
他对ANSYS的命令流不熟悉,希望大家能够给予帮忙
只要点出来了,命令流应该比较容易搞定!
 楼主| 发表于 2005-6-27 08:26:11 | 显示全部楼层 来自 湖北武汉

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

支持DICOM需要商业控件,有没有免费的控件,大家告知一下。由于DICOM的16位图格式,用控件比较好。
标定可以做到。在图上给出标尺的都可以进行标定。也就是
实际长度=象素长度*标尺比例

我现在可以生成关键点X,Y,Z,但是在用V命令的时候出了问题
当点的分布比较均匀的时候,可以生成实体,但是当随意取点,点的分布不均匀的时候,就不行了。
下面是程序生成的命令流
/prep7,
et,1,solid92
k,             2            ,              137          ,             -72           ,             0
k,             3            ,              76           ,             -156          ,             0
k,             4            ,              105          ,             -258          ,             0
k,             5            ,              167          ,             -318          ,             0
k,             6            ,              312          ,             -355          ,             0
k,             7            ,              430          ,             -306          ,             0
k,             8            ,              481          ,             -211          ,             0
k,             9            ,              456          ,             -153          ,             0
k,             10           ,              383          ,             -105          ,             0
k,             11           ,              290          ,             -79           ,             0
k,             12           ,              107          ,             -142          ,             1
k,             13           ,              87           ,             -201          ,             1
k,             14           ,              87           ,             -270          ,             1
k,             15           ,              120          ,             -315          ,             1
k,             16           ,              169          ,             -345          ,             1
k,             17           ,              256          ,             -356          ,             1
k,             18           ,              397          ,             -338          ,             1
k,             19           ,              436          ,             -256          ,             1
k,             20           ,              442          ,             -143          ,             1
k,             21           ,              365          ,             -91           ,             1
k,             22           ,              130          ,             -89           ,             2
k,             23           ,              102          ,             -164          ,             2
k,             24           ,              89           ,             -233          ,             2
k,             25           ,              120          ,             -286          ,             2
k,             26           ,              185          ,             -335          ,             2
k,             27           ,              307          ,             -354          ,             2
k,             28           ,              439          ,             -300          ,             2
k,             29           ,              486          ,             -179          ,             2
k,             30           ,              422          ,             -96           ,             2
k,             31           ,              265          ,             -71           ,             2
k,             32           ,              119          ,             -76           ,             3
k,             33           ,              79           ,             -141          ,             3
k,             34           ,              75           ,             -215          ,             3
k,             35           ,              116          ,             -295          ,             3
k,             36           ,              179          ,             -344          ,             3
k,             37           ,              354          ,             -370          ,             3
k,             38           ,              451          ,             -268          ,             3
k,             39           ,              451          ,             -172          ,             3
k,             40           ,              379          ,             -107          ,             3
k,             41           ,              218          ,             -65           ,             3
v,            2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
发表于 2005-6-27 10:27:26 | 显示全部楼层 来自 北京交通大学

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

本帖最后由 feasky 于 2010-5-24 13:49 编辑

我取点的时候一般用Getdata或者Origin,然后保存为文本文件,这些软件做得还是很不错的,目前要做的能否这样,利用这个文本文件直接转换成Ansys的命令流文件,这样可能节约开发周期,当然了,如果能自己编写出来那更好,不知道你用什么语言编写,我可以帮你编写由点坐标转换成Ansys命令这一块。希望能给你帮助,可以的话联系
 楼主| 发表于 2005-6-27 11:13:23 | 显示全部楼层 来自 湖北武汉

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

感谢,QQ连不上啊。我信箱alexqxp@126.com。再次谢谢!
发表于 2005-6-27 15:39:54 | 显示全部楼层 来自 辽宁沈阳

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

生成体的点需要一定的顺序性,且命令操作也有一定的局限性.希望大家一起讨论进步。
发表于 2005-6-27 19:47:24 | 显示全部楼层 来自 湖南湘潭

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

如果点太多的话,可能会要用其他工具先转为面或体,再处理吧。
我看见有人用CT片做逆向,所以瞎说了,见笑
发表于 2005-6-27 21:30:21 | 显示全部楼层 来自 台湾

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

我用过这种方法建了一颗牙齿的模型
我的习惯是应用矩阵以及回圈的方式写
因为牙齿从上到下的形状变化不大
所以用矩阵的方式写可以节省很多时间
因为我只要将第一层的节点输入后
下面的节点只要将上层的矩阵
乘上一个参数来控制它的大小与位置即可

另外我建议使用比notepad功能更强的Ultra Edit 来编写

评分

1

查看全部评分

发表于 2005-6-27 21:36:36 | 显示全部楼层 来自 台湾

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

忘了说,用这种方法的好处就是可以轻易的移动与修改模型

例如今天建了一个脊椎的模型

但想要研究有关脊椎侧弯的情形

可以很方便的改变原始模型的位置

来达到目的
发表于 2005-6-27 23:23:48 | 显示全部楼层 来自 陕西西安

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

给franky加分鼓励
很好的建议
发表于 2005-6-28 22:44:43 | 显示全部楼层 来自 清华大学

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

说到关键了,前面“识别”图稍难,算是图像识别?后面极其简单。
但是这两步都还可以做到。

然后,遇到的问题是CT的点不均匀,如果按这些点做网格不会很理想,正如你已经发现的一样。

有人的课题是做这个的,也有人的课题为了研究算法,只是手工挑点。自动挑点需要动些脑筋,如果做出来可以发文章吧,呵呵
alexqxp wrote:
支持DICOM需要商业控件,有没有免费的控件,大家告知一下。由于DICOM的16位图格式,用控件比较好。
标定可以做到。在图上给出标尺的都可以进行标定。也就是
实际长度=象素长度*标尺比例

我现在可以生成关键点X,Y,Z,但是在用V命令的时候出了问题
当点的分布比较均匀的时候,可以生成实体,但是当随意取点,点的分布不均匀的时候,就不行了。
下面是程序生成的命令流
/prep7,
et,1,solid92
k,             2            ,              137          ,             -72           ,             0
k,             3            ,              76           ,             -156          ,             0
k,             4            ,              105          ,             -258          ,             0
k,             5            ,              167          ,             -318          ,             0
k,             6            ,              312          ,             -355          ,             0
k,             7            ,              430          ,             -306          ,             0
k,             8            ,              481          ,             -211          ,             0
k,             9            ,              456          ,             -153          ,             0
k,             10           ,              383          ,             -105          ,             0
k,             11           ,              290          ,             -79           ,             0
k,             12           ,              107          ,             -142          ,             1
k,             13           ,              87           ,             -201          ,             1
k,             14           ,              87           ,             -270          ,             1
k,             15           ,              120          ,             -315          ,             1
k,             16           ,              169          ,             -345          ,             1
k,             17           ,              256          ,             -356          ,             1
k,             18           ,              397          ,             -338          ,             1
k,             19           ,              436          ,             -256          ,             1
k,             20           ,              442          ,             -143          ,             1
k,             21           ,              365          ,             -91           ,             1
k,             22           ,              130          ,             -89           ,             2
k,             23           ,              102          ,             -164          ,             2
k,             24           ,              89           ,             -233          ,             2
k,             25           ,              120          ,             -286          ,             2
k,             26           ,              185          ,             -335          ,             2
k,             27           ,              307          ,             -354          ,             2
k,             28           ,              439          ,             -300          ,             2
k,             29           ,              486          ,             -179          ,             2
k,             30           ,              422          ,             -96           ,             2
k,             31           ,              265          ,             -71           ,             2
k,             32           ,              119          ,             -76           ,             3
k,             33           ,              79           ,             -141          ,             3
k,             34           ,              75           ,             -215          ,             3
k,             35           ,              116          ,             -295          ,             3
k,             36           ,              179          ,             -344          ,             3
k,             37           ,              354          ,             -370          ,             3
k,             38           ,              451          ,             -268          ,             3
k,             39           ,              451          ,             -172          ,             3
k,             40           ,              379          ,             -107          ,             3
k,             41           ,              218          ,             -65           ,             3
v,            2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
发表于 2005-6-29 12:55:56 | 显示全部楼层 来自 江苏南京

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

alexqxp wrote:
支持DICOM需要商业控件,有没有免费的控件,大家告知一下。由于DICOM的16位图格式,用控件比较好。
标定可以做到。在图上给出标尺的都可以进行标定。也就是
实际长度=象素长度*标尺比例

我现在可以生成关键点X,Y,Z,但是在用V命令的时候出了问题
当点的分布比较均匀的时候,可以生成实体,但是当随意取点,点的分布不均匀的时候,就不行了。
点的分布均匀的时候也不行,因为v命令支持最多8个点。
发表于 2005-6-29 13:17:17 | 显示全部楼层 来自 陕西西安

Re:我想写个CT图像读点坐标的程序,以便在ANSYS中建模,大家给点意见。

那有没有解决的办法?
pjwseu wrote:
点的分布均匀的时候也不行,因为v命令支持最多8个点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-21 11:21 , Processed in 0.056379 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表