国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于圖像技術(shù)的3D打印支撐區(qū)域算法開發(fā)

2019-03-08 14:22邢銀龍
科技創(chuàng)新導(dǎo)報(bào) 2019年30期
關(guān)鍵詞:鏈碼掃描線交點(diǎn)

邢銀龍

摘? ?要:針對(duì)3D打印過程中對(duì)于懸臂結(jié)構(gòu)需要手動(dòng)設(shè)計(jì)支撐結(jié)構(gòu)問題,提出了一種基于數(shù)字圖像處理技術(shù)自動(dòng)識(shí)別需要支撐的區(qū)域并生成支撐的方法。首先給出了支撐區(qū)域識(shí)別算法,介紹了算法流程及算法的實(shí)現(xiàn)過程;其次在獲得支撐區(qū)域的基礎(chǔ)上,給出了支撐自動(dòng)生成算法,介紹了算法的流程及算法實(shí)現(xiàn)過程;最后給出了算法的結(jié)論。

關(guān)鍵詞:數(shù)字圖像? 圖像形態(tài)學(xué)? 支撐區(qū)域? 3D打印

中圖分類號(hào):TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-098X(2019)10(c)-0064-02

3D打印是20世紀(jì)80年代開始興起的技術(shù),歷經(jīng)幾十年的發(fā)展已經(jīng)取得了很大的進(jìn)展,尤其是最近10年,隨著材料技術(shù)、控制技術(shù)及計(jì)算機(jī)技術(shù)的發(fā)展取得了飛躍式的發(fā)展,3D打印已經(jīng)在眾多領(lǐng)域得到了廣泛應(yīng)用。3D打印技術(shù)是采用分層制造技術(shù)[1-3],從底部向上生長(zhǎng),每當(dāng)遇到懸臂結(jié)構(gòu)時(shí),需要在懸臂下方設(shè)計(jì)支撐結(jié)構(gòu),以保證在打印懸臂時(shí)不會(huì)出現(xiàn)塌陷現(xiàn)象,當(dāng)遇到腔體內(nèi)部需要支撐時(shí),人為手動(dòng)設(shè)計(jì)支撐就變得十分復(fù)雜,甚至無法實(shí)現(xiàn)支撐。因此根據(jù)模型的結(jié)構(gòu)特點(diǎn)自動(dòng)生成支撐就變得十分有意義。生成支撐的首要任務(wù)是識(shí)別支撐區(qū)域,是支撐設(shè)計(jì)的核心。本文采用數(shù)字圖像處理技術(shù)[4]中的圖像形態(tài)學(xué)處理以及圖像布爾運(yùn)算等技術(shù)自動(dòng)識(shí)別需要支撐的區(qū)域,并對(duì)需要生成支撐的區(qū)域進(jìn)行支撐路徑規(guī)劃[5],實(shí)現(xiàn)自動(dòng)生成支撐。

1? 支撐區(qū)域識(shí)別

支撐區(qū)是模型處于懸空部分在其正下方的投影區(qū),當(dāng)上層結(jié)構(gòu)在下層結(jié)構(gòu)投影時(shí),若兩層的投影差集不為空集時(shí),說明至少存在一個(gè)支撐區(qū)。若為空集,說明此層沒有支撐區(qū)。

1.1 支撐區(qū)識(shí)別算法流程

假設(shè)模型共有N+1層,第一層有N1個(gè)支撐區(qū),A11,A12,…A1n第N層有Nn個(gè)支撐區(qū)An1,An2,…Ann。其中N1…Nn可能為零,由于支撐區(qū)域識(shí)別算法在不同層之間的計(jì)算方式相同,因此本文以第N層計(jì)算為例,說明計(jì)算過程。假設(shè)第N層有m個(gè)支撐區(qū),m>0。算法具體流程如下:

步驟1:讀取第N層與第N+1層的模型輪廓數(shù)據(jù)分別存入ListNCount與ListN1Count表。

步驟2:將ListNCount與ListN1Count二值化成二值圖像ImageListN與ImageListN1。

步驟3:對(duì)圖像ImageListN與ImageListN1進(jìn)行圖像布爾運(yùn)算得到m個(gè)二值圖像ImageList1、ImageList2、ImageList3……ImageListm。

步驟4:對(duì)m個(gè)二值圖像分別進(jìn)行膨脹運(yùn)算得到m個(gè)膨脹后的圖像(ImageIn1為其中一個(gè),后面說明以此圖像為例,其余圖像操作相同)。

步驟5:對(duì)m個(gè)膨脹后的二值圖像分別進(jìn)行腐蝕運(yùn)算得到m個(gè)腐蝕后的圖像(ImageCo1為其中一個(gè),后面說明以此圖像為例,其余圖像操作相同)。

步驟6:用圖像ImageIn1與圖像ImageCo1進(jìn)行邊緣提取算法得到邊緣圖像ImageEdge1。對(duì)m組膨脹和腐蝕后的圖像進(jìn)行運(yùn)算得到m個(gè)邊緣圖像ImageEdge1、ImageEdge2、ImageEdge3…… ImageEdgem。

步驟7:對(duì)邊緣圖像進(jìn)行鏈碼與譯碼操作得到m組輪廓坐標(biāo)Coordinate1、Coordinate2、Coordinate3……Coordinatem。

以上m組輪廓坐標(biāo)就是所計(jì)算的m個(gè)支撐區(qū)域,每個(gè)區(qū)域都是一個(gè)閉合的輪廓。

1.2 支撐區(qū)識(shí)別算法實(shí)現(xiàn)

針對(duì)上節(jié)所述的支撐區(qū)域識(shí)別算法流程,本節(jié)詳細(xì)介紹支撐區(qū)域識(shí)別算法的實(shí)現(xiàn)過程。

(1)獲取第N層與第N+1層的輪廓坐標(biāo)ListNCount與ListN1Count。

(2) 計(jì)算ListNCount與ListN1Count Y向最大值與最小值YMax_N,YMin_N,YMax_N1,YMin_N1。

(3)用掃描線y以一個(gè)像素遞增的方式從開始到Y(jié)Max_N進(jìn)行線束掃描,計(jì)算掃描線與輪廓的交點(diǎn)坐標(biāo),每條掃描線存在偶數(shù)個(gè)交點(diǎn)坐標(biāo),將第2n個(gè)坐標(biāo)與第2n+1個(gè)坐標(biāo)之間的線段以一個(gè)像素單位分割,于是得到以像素為單位的坐標(biāo),將掃描線上的坐標(biāo)值賦值為1,掃描線外的坐標(biāo)值賦值為0,因此得到一幅二值圖像。同理可得到另一幅二值圖像。

(4)計(jì)算圖像ImageListN與圖像ImageListN1的并集。

(5)計(jì)算差集。

(6)對(duì)圖像進(jìn)行膨脹運(yùn)算。B為結(jié)構(gòu)元素。

(7)對(duì)圖像進(jìn)行腐蝕運(yùn)算。C為結(jié)構(gòu)元素。

(8)提取單像素邊緣。

(9)對(duì)單邊像素圖像進(jìn)行鏈碼運(yùn)算,將單邊像素圖像轉(zhuǎn)換成輪廓坐標(biāo)。鏈碼采用8方向鏈碼,8方向鏈碼可以使邊界更精確。鏈碼方向選取為逆時(shí)針方向:0-1-2-3-4-5-6-7-0。遍歷單邊像素圖像,得到第一個(gè)值為1的像素坐標(biāo)點(diǎn),以此點(diǎn)為邊界的起點(diǎn),標(biāo)記此點(diǎn)已被搜尋完畢。根據(jù)鏈碼方向遍歷下一點(diǎn),直到找到下一個(gè)值為1的像素點(diǎn),記為第二個(gè)邊界點(diǎn),標(biāo)記此點(diǎn)已被搜尋完畢。直到8方向像素值全為0,此條邊界搜尋完畢。同理,尋找下一條邊界的起點(diǎn),直到此圖像中所有為1的點(diǎn)全部被標(biāo)記過,此圖像搜尋完畢,所得幾組邊界,此圖像就有幾個(gè)需要支撐的區(qū)域。

(10)針對(duì)每層數(shù)據(jù)均采用(1)到(9)的操作過程,得到每一層的支撐區(qū)域。存入每層的輪廓坐標(biāo)數(shù)組Coordinate1、Coordinate2、Coordinate3……Coordinatem。

2? 支撐自動(dòng)生成算法

自動(dòng)生成支撐結(jié)構(gòu)是根據(jù)支撐區(qū)域在其內(nèi)部生成一定形式的填充路徑,層層堆疊,直到與懸臂接觸,以達(dá)到支撐懸臂結(jié)構(gòu)的效果,保證懸臂結(jié)構(gòu)不會(huì)因?yàn)閼铱斩霈F(xiàn)塌陷。

2.1 支撐生成算法流程

支撐區(qū)路徑采用連續(xù)蛇形填充算法,最大限度減小激光器的開關(guān)。

步驟1:獲取一層的支撐區(qū)的輪廓坐標(biāo)。

步驟2:計(jì)算相鄰路徑的填充間距,保證不塌陷的同時(shí)減少路徑長(zhǎng)度,以便后期容易去除支撐。

步驟3:根據(jù)支撐區(qū)輪廓坐標(biāo)及工藝參數(shù)信息規(guī)劃掃描線策略。

步驟4:分別計(jì)算掃描線束與輪廓交點(diǎn),得到掃描線與所有輪廓的交點(diǎn)信息。

步驟5:對(duì)交點(diǎn)信息進(jìn)行分類重組,形成一條或多條分段連續(xù)的蛇形路徑。

步驟6:將路徑信息轉(zhuǎn)換成控制變量以備后續(xù)使用。

步驟7:重復(fù)步驟1到步驟6計(jì)算過程,計(jì)算所有層的路徑信息,直到最后一層計(jì)算完畢。

2.2 支撐生成算法實(shí)現(xiàn)

(1)計(jì)算一層的輪廓坐標(biāo)值Coordinate1、Coordinate2、Coordinate3……Coordinatem。

(2)設(shè)兩條掃描線的填充間距為。

(3)計(jì)算本層所有輪廓的Y向最大值與最小值FY_Max\FY_Min。

(4)計(jì)算掃描線:yScan=FY_Min+Fd*i,i=0,1,2…,n滿足。

(5)計(jì)算交點(diǎn)坐標(biāo):設(shè)掃描線方程:y=yScan。C1(x1,y1),C2(x2,y2)是輪廓上相鄰兩點(diǎn)的坐標(biāo)。過此兩點(diǎn)的直線直線方程L為:y=kx+b。根據(jù)C1、C2可求出此方程。由掃描線方程與方程L聯(lián)立方程組可計(jì)算出交點(diǎn)坐標(biāo)(x1',y1')。當(dāng)滿足(x1'-x1)*(x1'-x2)≤0且(y1'-y1)*(y1'-y2)≤0時(shí),此點(diǎn)滿足條件,是所求的一個(gè)交點(diǎn)坐標(biāo)。

(6)計(jì)算此掃描線與所有輪廓的交點(diǎn),將滿足條件的交點(diǎn)按x值從小到大排列,存儲(chǔ)在掃描線列表中。

(7)在(4)中隨著i值的遞增變化,重復(fù)(5)到(6)過程得到當(dāng)前層的掃描線列表序列。

(8)從第一條掃描線列表開始成對(duì)提取相鄰兩個(gè)坐標(biāo)值,提取過的坐標(biāo)值被標(biāo)記已處理,從第二條掃描線提取坐標(biāo)對(duì)時(shí),判斷是否與第一對(duì)坐標(biāo)有垂直方向的投影,若有投影,將此對(duì)坐標(biāo)與第一對(duì)坐標(biāo)存儲(chǔ)到同一個(gè)區(qū)域數(shù)組中,若沒有投影,依次比較此條掃描線后面的坐標(biāo)對(duì),直到找到有投影的坐標(biāo)對(duì)或者全部遍歷完成,若沒有合適的投影坐標(biāo),則此區(qū)域結(jié)束。按此規(guī)律遍歷所有掃描線列表,直到所有坐標(biāo)都被標(biāo)記過。生成的區(qū)域數(shù)組的數(shù)量就是支撐區(qū)域數(shù)量,區(qū)域數(shù)組的坐標(biāo)值即為此支撐區(qū)域的填充路徑。

(9)重復(fù)(1)到(8)過程,直到所有層處理完成,即生成全部支撐。

(10)根據(jù)通信協(xié)議,將全部支撐路徑點(diǎn)轉(zhuǎn)換成控制變量,發(fā)送給控制器。

3? 結(jié)語

支撐自動(dòng)生成算法省去了人為設(shè)計(jì)支撐的過程。只需給定一個(gè)預(yù)進(jìn)行3D打印的模型,就可以自動(dòng)生成所有層所必須的支撐結(jié)構(gòu)。本文給出了一種基于圖像技術(shù)的支撐區(qū)域識(shí)別算法,能夠有效的識(shí)別出需要支撐的區(qū)域,同時(shí)給出了一種支撐路徑規(guī)劃方式,滿足支撐設(shè)計(jì)工藝。針對(duì)支撐區(qū)域識(shí)別與支撐路徑自動(dòng)生成給出了詳細(xì)的求解過程。

參考文獻(xiàn)

[1] 孫大涌.先進(jìn)制造技術(shù)[M].北京:機(jī)械工業(yè)出版社,2000.

[2] 劉光富.快速成型與快速制模技術(shù)[M].上海:同濟(jì)大學(xué)出版社,2004.

[3] 劉偉軍.快速成型技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.

[4] 岡薩雷斯.數(shù)字圖像處理[M].阮秋琦,等,譯.北京:電子工業(yè)出版社,2005.

[5] 王欽釗,程金勇,李小龍.復(fù)雜環(huán)境下機(jī)器人路徑規(guī)劃方法研究[J].計(jì)算機(jī)仿真,2017,34(10):296-300.

猜你喜歡
鏈碼掃描線交點(diǎn)
一種基于線掃描的受損一維條形碼識(shí)別方法
閱讀理解
基于掃描線模型的機(jī)載激光點(diǎn)云濾波算法
一種新壓縮頂點(diǎn)鏈碼
基于鏈碼特征的幾何圖形快速識(shí)別算法*
指數(shù)函數(shù)與冪函數(shù)圖象的交點(diǎn)的探究性學(xué)習(xí)
無損鏈碼技術(shù)的分析與比較
邊界鏈碼在字母與數(shù)字混合識(shí)別中的應(yīng)用