基于图像技术的3D打印支撑区域算法开发.docx

基于图像技术的3D打印支撑区域算法开发.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

基于图像技术的3D打印支撑区域算法开发

?

?

邢银龙

摘??要:针对3D打印过程中对于悬臂结构需要手动设计支撑结构问题,提出了一种基于数字图像处理技术自动识别需要支撑的区域并生成支撑的方法。首先给出了支撑区域识别算法,介绍了算法流程及算法的实现过程;其次在获得支撑区域的基础上,给出了支撑自动生成算法,介绍了算法的流程及算法实现过程;最后给出了算法的结论。

关键词:数字图像?图像形态学?支撑区域?3D打印

中图分类号:TP391?????????????????文献标识码:A????????????文章编号:1674-098X(2019)10(c)-0064-02

3D打印是20世纪80年代开始兴起的技术,历经几十年的发展已经取得了很大的进展,尤其是最近10年,随着材料技术、控制技术及计算机技术的发展取得了飞跃式的发展,3D打印已经在众多领域得到了广泛应用。3D打印技术是采用分层制造技术[1-3],从底部向上生长,每当遇到悬臂结构时,需要在悬臂下方设计支撑结构,以保证在打印悬臂时不会出现塌陷现象,当遇到腔体内部需要支撑时,人为手动设计支撑就变得十分复杂,甚至无法实现支撑。因此根据模型的结构特点自动生成支撑就变得十分有意义。生成支撑的首要任务是识别支撑区域,是支撑设计的核心。本文采用数字图像处理技术[4]中的图像形态学处理以及图像布尔运算等技术自动识别需要支撑的区域,并对需要生成支撑的区域进行支撑路径规划[5],实现自动生成支撑。

1?支撑区域识别

支撑区是模型处于悬空部分在其正下方的投影区,当上层结构在下层结构投影时,若两层的投影差集不为空集时,说明至少存在一个支撑区。若为空集,说明此层没有支撑区。

1.1支撑区识别算法流程

假设模型共有N+1层,第一层有N1个支撑区,A11,A12,…A1n第N层有Nn个支撑区An1,An2,…Ann。其中N1…Nn可能為零,由于支撑区域识别算法在不同层之间的计算方式相同,因此本文以第N层计算为例,说明计算过程。假设第N层有m个支撑区,m0。算法具体流程如下:

步骤1:读取第N层与第N+1层的模型轮廓数据分别存入ListNCount与ListN1Count表。

步骤2:将ListNCount与ListN1Count二值化成二值图像ImageListN与ImageListN1。

步骤3:对图像ImageListN与ImageListN1进行图像布尔运算得到m个二值图像ImageList1、ImageList2、ImageList3……ImageListm。

步骤4:对m个二值图像分别进行膨胀运算得到m个膨胀后的图像(ImageIn1为其中一个,后面说明以此图像为例,其余图像操作相同)。

步骤5:对m个膨胀后的二值图像分别进行腐蚀运算得到m个腐蚀后的图像(ImageCo1为其中一个,后面说明以此图像为例,其余图像操作相同)。

步骤6:用图像ImageIn1与图像ImageCo1进行边缘提取算法得到边缘图像ImageEdge1。对m组膨胀和腐蚀后的图像进行运算得到m个边缘图像ImageEdge1、ImageEdge2、ImageEdge3……ImageEdgem。

步骤7:对边缘图像进行链码与译码操作得到m组轮廓坐标Coordinate1、Coordinate2、Coordinate3……Coordinatem。

以上m组轮廓坐标就是所计算的m个支撑区域,每个区域都是一个闭合的轮廓。

1.2支撑区识别算法实现

针对上节所述的支撑区域识别算法流程,本节详细介绍支撑区域识别算法的实现过程。

(1)获取第N层与第N+1层的轮廓坐标ListNCount与ListN1Count。

(2)计算ListNCount与ListN1CountY向最大值与最小值YMax_N,YMin_N,YMax_N1,YMin_N1。

(3)用扫描线y以一个像素递增的方式从开始到YMax_N进行线束扫描,计算扫描线与轮廓的交点坐标,每条扫描线存在偶数个交点坐标,将第2n个坐标与第2n+1个坐标之间的线段以一个像素单位分割,于是得到以像素为单位的坐标,将扫描线上的坐标值赋值为1,扫描线外的坐标值赋值为0,因此得到一幅二值图像。同理可得到另一幅二值图像。

(4)计算图像ImageListN与图像ImageListN1的并集。

(5)计算差集。

(6)对图像进行膨胀运算。B为结构元素。

(7)对图像进行腐蚀运算。C为结构元素。

(8)提取单像素边缘。

(9)对单边像素图像进行链码运算,将单边像素图像转换成轮廓坐标。链码采用8方向链码,8方向链码可以使边界更精确。链码方向选取为逆时针方向:0-1-2-3-4-5-6-7-0。遍历单边像素图像,得到第

文档评论(0)

134****4182 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档