專利名稱:工件上基于圖像光柵化和鏈碼技術的字符噴繪方法
技術領域:
本發(fā)明涉及一種在板材工件上噴繪信息的方法,更具體地說,涉及一種造 船工業(yè)下在不規(guī)則工件上實現噴繪的方法。
背景技術:
現有技術下,船體鋼板工件上噴繪字符都是由操作人員手工完成。人們通 過長時間的生產實踐發(fā)現,傳統噴繪字符的方式存在諸多問題,譬如高揮發(fā)性
的油漆會導致環(huán)境污染,對操作人員身體會造成傷害;并且手工噴繪字符效率 低,不同操作人員的書寫效果不能統一規(guī)范;有時,手工書寫的字符可識別性 也較差。
隨著計算機及數控技術的發(fā)展,CAD/CAM成為現代工業(yè)生產的必然趨勢。 多種數控自動噴繪機器為船體鋼板工件的自動噴繪流程提供了硬件基礎。
其中, 一種AutoCAD(Drawing Interchange Format或者Drawing Exchange Format)繪圖交換文件DXF為實現上述噴繪工藝提供了重要基礎。DXF文件是
數據文件格式,是Autodesk AutoCAD程序使用的基于矢量的ASCII格式。 AutoCAD可以提供非常詳細的完全可以縮放的圖表。目前,絕大多數CAD系 統都能讀入或輸出DXF文件。而在船舶加工中,工件的設計及制圖多存儲出一 個DXF文件,成為矢量圖元文件。
此外,圖像光柵化即將一副圖像轉化為光柵圖像存儲、處理的方法。而 Freeman鏈碼技術是一種編碼計算方法,廣泛應用于圖像編碼領域。
發(fā)明內容
針對上述問題,本發(fā)明提供了一種快速實現板材工件噴繪信息的方法,旨在提高造船工業(yè)下噴繪環(huán)節(jié)的工作效率,從而達到節(jié)省成本、減少工作強度、 提高工作效率的目的。
為了解決上述問題,本發(fā)明設計了 一種工件上基于圖像光柵化和鏈碼技術
的字符噴繪方法,包括如下步驟
51、 通過工件的矢量圖元文件(如AutoCAD軟件下擴展名為dxf的文件), 獲取工件上邊界圖元、各個內孔圖元,以及各個標記線圖元的矢量信息,將邊 界、內孔以及標記線圖元的矢量信息分別存儲為獨立的圖元單元。
52、 對工件的圖像做光柵化處理獲得光柵網格;其中,構成光柵網格的寬 度為噴繪字體的單個字寬+字間距,構成光柵網格的高度為噴繪字體的單個字高 +行間距。
53、 取小于光柵網格寬度和高度的長度作為離散步長,對S1步驟獲得各個 圖元單元分別離散化,并且每個圖元單元存儲其各個離散點所在光柵網格的位 置信息,所述位置信息主要包括坐標信息。其中,上述離散點用來確定每個圖 元究竟應該在光柵網格中占據哪些位置。
54、 對離散的圖元單元分別進行Freeman鏈碼計算,以便在后續(xù)的步驟中 能夠區(qū)分網格上面任意一個格子的位置是位于區(qū)域內,還是位于區(qū)域外或是恰 好在區(qū)域邊界上。具體說,利用步驟S3獲得的位置信息識別出邊界圖元、內孔 圖元以及標記線圖元在光柵網格上分別對應的邊界信息,并將獲得的邊界信息 以標注碼的形式存儲到相應的圖元單元中。
55、 利用步驟S4獲得的各個圖元單元存儲的標注碼,對光柵網格內的每一 網格進行累加,從而識別出圖元單元之間所夾的多個復連通區(qū)域,所夾的復連 通區(qū)域是可用于噴繪的區(qū)域。
56、 結合噴繪位置、噴繪字符尺寸、內容的要求在多個復連通區(qū)域中選擇 噴繪區(qū),并向噴繪數控設備發(fā)送命令信息,指導噴繪操作。
上述的工件上基于圖像光柵化和鏈碼技術的字符噴繪方法,其改進操作在 于,當步驟S6中噴繪區(qū)選擇無效時,需要將工件的矢量圖元旋轉,從而利用步 驟S1中的工件矢量圖元文件,獲取工件上邊界圖元、各個內孔圖元以及各個標記線圖元旋轉后的矢量信息,將邊界、內孔以及標記線圖元的信息分別存儲為
獨立的新的圖元單元;此后重復上述步驟S2-S6;而后當噴繪區(qū)仍選擇無效時, 再次重復上述旋轉步驟,尋找噴繪區(qū),直至選擇出有效噴繪區(qū)或無法獲得噴繪 區(qū)為止。
本發(fā)明提供了的快速實現板材工件噴繪信息的方法,能夠提高造船工業(yè)噴 繪環(huán)節(jié)的工作效率,從而具有節(jié)省成本、減少工作強度、提高工作效率的特點。
圖1是一種待噴繪工件實施例矢量圖元文件顯示狀態(tài)下的結構示意圖2是第一種已噴繪工件實施例的示意圖3是第二種已噴繪工件實施例的示意圖4是第三種已噴繪工件實施例的示意圖5是一種標記線圖元在柵格化后的示意圖6是Freeman鏈碼8鄰4妄方式移動示意圖7是Freeman鏈碼4鄰4妄方式移動示意圖8是一種欲填充復連通區(qū)域的示意圖9是圖8實施例下前矢量標注的示意圖IO是圖8實施例下后矢量標注的示意圖ll是圖8實施例前、后矢量標注疊加的示意圖12是圖8實施例最終矢量標注示意圖。
具體實施例方式
如圖1所示一種待噴繪工件矢量圖元文件的顯示圖,圖中顯示出石皮口字符1、 工件號3、邊界4、內孔5、標記線6,以及已有字符7等圖元信息。本發(fā)明利 用上述信息(確切地說主要是各個圖元的矢量信息)實現后續(xù)工作,具體說, 包括如下步驟
Step 1、 讀取文件,提取文件中有用的信息,包括上述破口字符l、工件號3、邊界4、內孔5、標記線6,以及已有字符7等圖元信息(主要包括構 成邊界、內孔、標記線以及已有字符的直線段和弧線段以及它們的連 接關系)
以AutoCAD下的DXF文件為例,這一步中的有用信息是指DXF文 件中的圖形信息和已有字符信息。在C+ +的程序開發(fā)環(huán)境下,用四 個動態(tài)數組容器分別按照文件讀取順序(也是邊界順序,外邊界逆時 針,內邊界順時針)存儲點、線段、弧線段和已有字符信息;每個邊 界和連續(xù)的標記線分別用 一個動態(tài)數組來存儲其上圖元類型和圖元在 存儲圖元的動態(tài)數組中的索引;此時的存儲順序代表了邊界和連續(xù)的 標記線中圖元的連接關系。從而將邊界、內孔以及標記線圖元的矢量 信息分別存儲為獨立的圖元單元。 St印2、(此步驟是最優(yōu)方式下設置的步驟,根據具體情況,選擇適用。)
具體說,需要計算工件的周長,按照周長大小將工件分成大、中、 小三類,在后續(xù)步驟中^l姿照類別進行不同的處理,以便提高時間效率 和美觀程度
在具體實現中,周長大于5米的被定義為B (大)類,大于2米 小于5米的被定義為M (中)類,小于2米的被定義為S (小)類。 Step 3、(此步驟是最優(yōu)方式下設置的步驟,根據具體情況,選擇適用。)
具體說,需要對數據進行預處理,去掉內孔起始和結束處的多余 的小段圓弧。以DXF文件為例,在DXF文件中每個內孔起始和結束的 地方都有多余的弧線表示切割鋼板的起始打孔點和結束點,這在圖形 處理中特別是后文應用Freeman鏈碼技術中會影響算法精度,因此, 從每個內孔動態(tài)數組中找到對應的索引再去存儲圖元的動態(tài)數組中將 其刪除掉。
Step 4、 將存儲的矢量圖元或者說各個圖元單元進行光柵化處理。此步驟是本 系統設計的根本出發(fā)點。它將矢量圖按照一定尺度離散成光柵網格, 又稱"類位圖",從而利用圖像處理的手段解決矢量圖上的特定位置定位工作。本發(fā)明采取的離散尺度為指定噴繪字符的尺寸,按照工件的 分類,對不同工件設置不同的離散優(yōu)先級順序(通常允許噴繪字符有 多種尺寸),以此提高噴繪位置選擇的美觀程度和噴繪字號選擇的合理 程度。
光柵化算法如下
1、 區(qū)域光柵化首先通過圖形所有圖元的水平最大值、最小值和豎直 最大值、最小值,確定圖形區(qū)域;然后將噴繪字符的寬st印—x (字寬 +字間距)作為水平步長,將字符的高st印—y (字高+行間距)作為 豎直步長,將圖形區(qū)域劃分為均勻網格。
2、 矢量圖元離散設置離散步長stepLen小于step—x和step—y,以 便使得離散點落在每個圖元經過的圖紙網格中。點圖元,已經是離散 狀態(tài),直接存儲;直線段圖元,在其上插入分點,分線段長度等于 st印Len (最后一條小于st印Len);弧線段圖元,插入分點,使得分 弦長等于steplxn (最后一條小于stepLen)。
3、 光柵區(qū)域填充用動態(tài)數組存儲每個邊界或者標記線的光柵化網格 信息。按照離散點的存儲順序,將每個離散點插入光柵網格,將對應 的格子索引(x, y)存儲在對應的動態(tài)數組中。
如此處理之后能夠任意獲得一條邊界或者標記線的光柵數據(位 圖上的象素索引鏈)進行處理。
這種數據存儲方式可以方^f更我們快速地通過標記線的成員變量來 訪問它在網格(位圖)中的位置,方便我們直接利用這條離散的"像素 索引鏈,,來進行計算。舉個例子DXF文件里面有一條標記線,在網格 里面看它的時候就需要知道它離散到網格里面是哪些格子(參見附圖 中的圖5),這里就是要把這些格子的位置保存到標記線的數據結構或 者說圖元單元中便于后續(xù)訪問。 Step 5、 對離散成的"類位圖"中每個封閉的邊界進行Freeman鏈碼計算。計
算邊界的freeman鏈碼是為了在后續(xù)的步驟中能夠區(qū)分網格上面任意一個格子的位置是位于區(qū)域內、區(qū)域外或是恰好在區(qū)域邊界上。計算 機在判斷平面網格上某點是否在指定的區(qū)域內時需要一個判斷的標 準,而這里計算的鏈碼就是提供了這種標準。
圖像邊界最終Freeman鏈碼的計算方法如下
Freeman鏈碼表示/人目標點出發(fā)到目標相鄰點的位置矢量關系。 當鏈碼沿離散曲線以8鄰接方式移動時,每一個移動方向由數字集 卵=0丄2, ,7}進^亍編石馬,表示與x軸正向成4S。xi夾角(圖6);相應;也, Freeman也給出了 4鄰接方向的鏈碼(圖7 ),和本文問題無關,不作 討論。
利用Freeman鏈碼的方向連接性質,追蹤圖像中物體的邊界像素 點走向并輔助以圖元(線段、圓、圓弧等)性質判斷及相應處理方法 (合并、切割、忽略等),可以完成對簡單物體的識別。特別地,對 于邊界閉合的物體,從邊界上任意點開始追蹤而得到的Freeman鏈 碼,若將其首尾相接,所得到的"Freeman環(huán)鏈碼"是唯一的,這就 使得對閉合邊界所包圍的區(qū)域進行填充變得相對容易很多。
若已知離散閉合曲線c:fe,h,..,pn,pa (不妨假設其為逆時針定 向),對C上任一點ft-(Si,yi》(i-0丄…,n),用Pi到Pi+i的Freeman鏈碼值F!j 計算Pi的前矢量標注l4,用ft到ivi的Freeman鏈碼值Ffei計算R的后矢量 標注Lb"所遵循的原則為
f 1, F《=1,2,3 14 = | 0, F《=Cb4 1麵= I—i = S 6,7
1, = 1,2,3
0, Ft3t = 0,4 。(公式1)
1, 1% = 5,6,7
將R的前、后矢量標注相加,并對其和Lsj (0,±l±2)根據"外圍 點優(yōu)先,,的原則修正,得到ft的最終矢量標注Li:
k =《
②L^ = -i且Pi在p"i或,正左
② L^ = —:t且ft在Pi—i或p化i正右c
③ Lsj = 1且ft在Pi—a或ft+i正左 i,①Lsj = 2
②Lsj = i且Pi在Pi—i或ih+i正右
(公式2)若c為順時針定向,則ft的最終矢量標注!^為
Lsj = —2
② Lsj = —1且Pi在Pi4或p^正右
0, ①Lsj = Q
匸=《 ②LSi = —1且ft在Pj—t或Pi+i正左。(公式3)
③ LSj = 1且Pj在:Pi^或Pi+i.正右
1, ①Lsj = 2 ②Lsj = i且Pi在Pi—i或Pi+i正左
由于Freeman鏈碼只能沿曲線行進方向表示曲線的走向關系,所 以需要對曲線進行雙向編碼以取得它的鄰域走向信息來滿足區(qū)域填 充的需求。由^>式1—>式3)得到的最終矢量標注能夠準確描述水平 方向上曲線的凹凸情況并在垂直方向上保持曲線的外圍輪廓,基于此 的掃描線填充可以快速有效地處理區(qū)域邊界曲線上出現的凹凸和切 點等不規(guī)則情況。另外,由(公式1-公式3)可以平行地給出垂直掃描 的標注定義。
將欲填充的復連通區(qū)域視為由 一條外邊界以及多條內邊界所夾 部分組成,令外邊界以逆時針定向,內邊界以順時針定向,可以得到 該復連通區(qū)域邊界的最終矢量標注(圖8-12)。(所謂"欲填充的復連 通區(qū)域"是數學上的說法,其實就是指我們單個零件的外邊界和內孔 邊界所包圍的區(qū)域。"最終要選擇的可以進行噴繪的區(qū)域"是指在離 散的網格上面除掉外邊界、內孔邊界和標記線所占格子之外的所有格 子構成的部分)
在計算圖形邊界的最終Freeman鏈碼的過程中,要對每條邊界單 獨計算,單獨存儲。否則會導致后計算的鏈碼值在位圖象素上覆蓋先 前計算的鏈碼值,導致不能準確提供填充所依賴的判斷條件。計算完 所有邊界鏈碼值之后,再將所有的邊界鏈碼信息累加到同 一個位圖 上。
St印6、 根據Freeman鏈碼,對"類位圖,,中每個象素進行有效標注。所謂標 注,是內、外邊界所占用每一個像素(網格上的格子)的Freeman值。按照先外邊界在內邊界,最后標記線的順序添加標記。如果某條邊界 的點(光柵網格索引點)落在某個"象素"上并且該"象素"上原來
沒有標注,就將對應的鏈碼作為該象素的標注;如果該"象素,,上已 經有了標注,就將鏈碼和標注累加作為新的標注。這里的累加指單個 像素上的累加。比如一條外邊界占了坐標(7, 5)這個位置,它的Freeman 鏈碼為1;同時, 一條標記線也占了坐標(7, 5)這個位置,它的Freeman 鏈碼為-1。那么記錄的坐標(7,5)這個位置的Freeman鏈碼就是0。如 果某條標記線的點(光柵網格索引點)落在某個象素上,并且該象素 原來沒有標注,則將"0"作為該象素的新標注,如果該象素上已經有 標注了,保持原來的標注不變。 Step 7、 根據"類位圖"中標注(Re:標注)進行有效位置搜索。搜索時對標 注碼進行累加。這里的累加是對網格上某一刊4象素的Freeman鏈碼進 行累加。如想確定網格上第8行哪些位置可用,每走過一個像素就 按照Step7的辦法累加這個數值,如此就可以邊走邊判斷該像素是否 可用。
累加初始值為0,搜索位置從每行最左端開始,如果累加值為-l 且當前位置無標注碼,則當前位置為有效填充位置(,否則為不可填 充位置。有效填充位置是可以噴繪的地方,但是最終是否噴繪在這里 還要受用戶選定參數的限制,所以噴繪位置是最終從若干有效填充位 置中選定的。此步驟可依據St印2中的分類,按照速度最優(yōu)、效果最 優(yōu)、用戶指定等形式對不同工件進行不同優(yōu)先級順序的搜索。系統將 搜索結果中的噴繪位置、噴繪字符尺寸(字號)、噴繪字符內容等信息 返回給用戶。
前述Freeman鏈碼就是這里要累加的標注碼。具體搜索要求可以 有很多,比如限定在零件的中心位置搜索、限定噴繪的字符行數為3、 限定是否過濾短小的標記線、限定是否預留邊界等等。在遍歷一行的 過程中,當經過一個像素時,若我們這里的累加值為-1且該像素未被繪的。噴繪位置是在上述的搜索要求限 制下,算法從所有的適合噴繪位置中找出來的那些符合條件的位置。)
Step 8、如果St印7操作成功(找到有效噴繪位置),返回位置信息。如果St印7 操作失敗,未能找到有效噴繪的位置,則根據數據信息確定一個合理 的偏轉角度
此處,優(yōu)選方式下,選擇最小二乘法確定工件擺放的偏轉方向。 將工件的外邊界作為最小二乘的輸入數據進行擬合,得到一個方向, 將此方向的角度作為圖形重新擺正的角度。
此外,"如果Step7不成功,則根據數據信息確定一個合理的偏轉 角度",這就話是說,如果一個零件第一次搜索的時候不是按照它內部 可用區(qū)域最長的方向來做,就要重新找一下這個方向,然后重新計算。 比如一個矩形,第一次搜索如果是水平放置了可能沒有找到噴繪位置, 而我們知道矩形的對角線方向是最長的,所以應該再旋轉到對角線方 向去找找看能不能噴上。) Step 9、根據Step8得到的角度將矢量圖元(即整個工件圖形)旋轉;重復Step3 至Step7;
Step 10、如果Step9操作失敗,并且用戶提供其他旋轉角度,則重新做旋轉; 重復St印3至Step7;否則,返回信息通知用戶系統無法找到合適的噴 繪位置。
附圖2-4給出了在不同工件最終噴繪的效果。其中標號2表示選定的噴繪 位置。圖1中的標號2也表示選定的噴繪位置。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局 限于此,任何熟悉本技術領域的技術人員在本發(fā)明披露的技術范圍內,根據本 發(fā)明的技術方案及其發(fā)明構思加以等同替換或改變,都應涵蓋在本發(fā)明的保護 范圍之內。
權利要求
1. 一種工件上基于圖像光柵化和鏈碼技術的字符噴繪方法,其特征在于,包括如下步驟S1、通過工件的矢量圖元文件,獲取工件上邊界圖元、各個內孔圖元,以及各個標記線圖元的矢量信息,將邊界圖元、內孔圖元以及標記線圖元的矢量信息分別存儲為獨立的圖元單元;S2、對工件的圖像做光柵化處理獲得光柵網格;其中,構成光柵網格的寬度為噴繪字體的單個字寬+字間距,構成光柵網格的高度為噴繪字體的單個字高+行間距;S3、取小于光柵網格寬度和高度的長度作為離散步長,對S1步驟獲得各個圖元單元分別離散化,并且每個圖元單元存儲其各個離散點所在光柵網格的位置信息,所述位置信息包括坐標信息;S4、對離散的圖元單元分別進行Freeman鏈碼計算,即,利用S3獲得的位置信息識別出所述邊界圖元、內孔圖元以及標記線圖元在所述光柵網格上分別對應的邊界信息,并將獲得的所述邊界信息以標注碼的形式存儲到相應的圖元單元中;S5、利用步驟S4獲得的各個圖元單元存儲的標注碼,對所述光柵網格內的每一網格進行累加,從而識別出所述圖元單元之間所夾的多個復連通區(qū)域;S6、結合噴繪位置、噴繪字符尺寸和內容在多個所述復連通區(qū)域中選擇一個噴繪區(qū),并向噴繪數控設備發(fā)送命令信息,指導噴繪操作。
2、 根據權利要求1所述的工件上基于圖像光柵化和鏈碼技術的字符噴繪方法,其特征在于,步驟S6中當噴繪區(qū)選擇無效時,旋轉所述工件的矢量圖元,從而利用步驟S1中的工件矢量圖元文件,獲取工件上邊界圖元、各個內孔圖元以及各個標記線圖元旋轉后的矢量信息,將邊界、內孔以及標記線圖元的信息分別存儲為獨立的新的圖元單元;此后重復步驟S2—S6;而后當噴繪區(qū)仍選擇無效時,再次重復上述旋轉步驟,尋找噴繪區(qū),直至選擇出有效噴繪區(qū)或無法獲得噴繪區(qū)為止。
全文摘要
本發(fā)明公開了一種工件上基于圖像光柵化和鏈碼技術的字符噴繪方法,包括如下步驟1.通過工件的矢量圖元文件,獲取圖元的矢量信息,存儲為獨立的圖元單元。2.對工件的圖像做光柵化處理獲得光柵網格;3.對各個圖元單元分別離散化。4.對離散的圖元單元分別進行Freeman鏈碼計算,將邊界信息以標注碼的形式存儲到相應的圖元單元中。5.識別出圖元單元之間所夾的多個復連通區(qū)域。6.選擇噴繪區(qū),指導噴繪操作。本發(fā)明提供了的快速實現板材工件噴繪信息的方法,能夠提高造船工業(yè)噴繪環(huán)節(jié)的工作效率,從而具有節(jié)省成本、減少工作強度、提高工作效率的特點。
文檔編號G06F17/50GK101458734SQ200810229498
公開日2009年6月17日 申請日期2008年12月10日 優(yōu)先權日2008年12月10日
發(fā)明者劉秀萍, 孫冠基, 靜 文, 李治龍, 誠 王, 王豐敏 申請人:大連船舶重工集團有限公司