本發(fā)明涉及邊界曲線處理技術(shù)領(lǐng)域,特別涉及一種用于確定船體外板角點的方法。本發(fā)明還涉及一種用于確定船體外板角點的裝置。
背景技術(shù):
隨著造船技術(shù)與航運市場的不斷發(fā)展,船舶建造日趨大型化和經(jīng)濟化,目前所具有的彎板技術(shù)大多使用的是人工加工的方法,這對加工人員的技術(shù)要求較高,而且存在效率低下的問題。因此船體外板的自動化加工成為提高生產(chǎn)效率,節(jié)約能源的必要手段。船體外板具有大尺寸、形狀復(fù)雜、加工效果多樣等特點,因此在進行船體外板加工前首先要準確地得到要加工外板的形狀,這就要求精確地找出復(fù)雜輪廓的角點,從而達到提高曲線輪廓的擬合度。
目前,國內(nèi)外對于復(fù)雜形狀的角點檢測已有一定的研究。其中較有代表性意義的包括SUSAN算法、Hough變化、Morave算法等,這些算法主要用于圖像單尺度下的角點檢測,但實際的角點檢測常用于多尺度范圍內(nèi)?;诟咚钩叨瓤臻g的多尺度算法解決了單尺度問題,但出現(xiàn)了計算量龐大的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種用于確定船體外板角點的方法,該方法可以解決在確定角點過程中的計算量大,且精度不高的問題。本發(fā)明的另一目的是提供一種用于確定船體外板角點的裝置。
為實現(xiàn)上述目的,本發(fā)明提供一種用于確定船體外板角點的方法,包括如下步驟:
S1、獲取船體外板的輪廓曲線;
S2、在所述輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將所述輪廓曲線分割為子邊界;
S3、獲取所述初始分割直線與所述輪廓曲線的兩個交點以及所述子邊界中相距所述初始分割直線最遠的遠點;
S4、將所述遠點與所述交點通過直線連接,作為更新分割直線;
S5、判斷任意相鄰的兩個所述更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且判斷所述遠點相距所述初始分割直線的距離是否小于預(yù)設(shè)距離;若是,則將所述遠點確定為角點;若否,則將所述更新分割直線作為初始分割直線返回步驟S3。
相對于上述背景技術(shù),本發(fā)明提供的用于確定船體外板角點的方法,首先通過對船體外板的輪廓曲線進行初次分割,在輪廓曲線的區(qū)域內(nèi)設(shè)置一條初始分割直線,將輪廓曲線分為兩部分,即分割為兩個子邊界;然后獲取初始分割直線與輪廓曲線的兩個交點,并分別從每一子邊界中找出與初始分割直線之間距離最大的點,作為遠點,并將遠點與其相鄰的交點利用更新分割直線相連;并重復(fù)上述的分割步驟直至任意相鄰的兩個更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且子邊界中相距遠點的距離是否小于預(yù)設(shè)距離,則認為該遠點為輪廓曲線的角點。如此設(shè)置,能夠高效檢測出復(fù)雜輪廓的角點,通過對邊界曲線的多次分割以便減少噪聲點對于曲線角點檢測造成的影響,上述方法在確定角點過程中,計算量較小,且精度較高。
優(yōu)選地,所述步驟S1具體為:通過掃描儀將所述船體外板的三維輪廓掃描至二維平面上,獲取所述船體外板的輪廓曲線。
優(yōu)選地,所述步驟S2具體為:在所述輪廓曲線的中部取一條水平的初始分割直線,將所述輪廓曲線分割為子邊界。
優(yōu)選地,所述當(dāng)所述遠點確定為角點之后,還包括:
通過直線將任意相鄰的兩個所述角點連接,得到由多條直線形成的船體外板輪廓曲線。
本發(fā)明還提供一種用于確定船體外板角點的裝置,包括:
獲取模塊:用于獲取船體外板的輪廓曲線;
分割模塊:用于在所述輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將所述輪廓曲線分割為子邊界;
遠點確定模塊:用于獲取所述初始分割直線與所述輪廓曲線的兩個交點以及所述子邊界中相距所述初始分割直線最遠的遠點;
分割直線更新模塊:用于將所述遠點與所述交點通過直線連接,作為更新分割直線;
判斷模塊:用于判斷任意相鄰的兩個所述更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且判斷所述遠點相距所述初始分割直線的距離是否小于預(yù)設(shè)距離;若是,則將所述遠點確定為角點;若否,則將所述更新分割直線作為初始分割直線并觸發(fā)遠點確定模塊。
優(yōu)選地,所述獲取模塊包括:
掃描儀:用于將所述船體外板的三維輪廓掃描至二維平面上,獲取所述船體外板的輪廓曲線。
優(yōu)選地,所述分割模塊具體為在所述輪廓曲線的中部取一條水平的初始分割直線,將所述輪廓曲線分割為子邊界。
優(yōu)選地,還包括:
船體外板輪廓曲線成型模塊:用于通過直線將任意相鄰的兩個所述角點連接,得到由多條直線形成的船體外板輪廓曲線。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的用于確定船體外板角點的方法的流程圖;
圖2為建立船體外板坐標系的示意圖;
圖3為分割船體外板、且確定遠點的示意圖;
圖4為確定更新分割直線的示意圖;
圖5為利用直線逼近輪廓曲線的示意圖;
圖6為確定角點的示意圖;
圖7為通過角點確定輪廓曲線邊界的示意圖;
圖8為本發(fā)明實施例所提供的用于確定船體外板角點的裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了使本技術(shù)領(lǐng)域的技術(shù)人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
請參考圖1圖8,圖1為本發(fā)明實施例所提供的用于確定船體外板角點的方法的流程圖;圖2為建立船體外板坐標系的示意圖;圖3為分割船體外板、且確定遠點的示意圖;圖4為確定更新分割直線的示意圖;圖5為利用直線逼近輪廓曲線的示意圖;圖6為確定角點的示意圖;圖7為通過角點確定輪廓曲線邊界的示意圖;圖8為本發(fā)明實施例所提供的用于確定船體外板角點的裝置的結(jié)構(gòu)框圖。
本發(fā)明提供的一種用于確定船體外板角點的方法,如說明書附圖1所示,主要包括如下步驟:
S1、獲取船體外板的輪廓曲線;
S2、在所述輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將所述輪廓曲線分割為子邊界;
S3、獲取所述初始分割直線與所述輪廓曲線的兩個交點以及所述子邊界中相距所述初始分割直線最遠的遠點;
S4、將所述遠點與所述交點通過直線連接,作為更新分割直線;
S5、判斷任意相鄰的兩個所述更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且判斷所述遠點相距所述初始分割直線的距離是否小于預(yù)設(shè)距離;若是,則將所述遠點確定為角點;若否,則將所述更新分割直線作為初始分割直線返回步驟S3。
在上述步驟S1中,獲取船體外板的輪廓曲線,其具體獲取方式可以通過掃描儀將所述船體外板的三維輪廓掃描至二維平面上,從而得到船體外板的輪廓曲線。除此之外,還可以采用其他方式獲取船體外板的輪廓曲線,本發(fā)明不再贅述。
在步驟S2中,在輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將輪廓曲線分割為子邊界;這一步驟可以看做是初次分割,將輪廓曲線分割為上下兩個子邊界。
其中,初始分割直線可以為一條位于輪廓曲線中部的水平直線,即,在輪廓曲線的中部取一條水平的初始分割直線,將輪廓曲線分割為子邊界。如此設(shè)置,可以進一步降低分割次數(shù),提高計算效率。
在步驟S3中,初始分割直線與輪廓曲線相交的點即為交點,可以通過相應(yīng)公式獲取兩個交點的坐標;兩個子邊界中相距初始分割直線最遠的遠點同樣可以通過相應(yīng)公式得出。
在步驟S4中,將遠點與交點通過直線連接,該直線作為更新分割直線。
在步驟S5中,判斷任意相鄰的兩個更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且判斷子邊界中相距所述遠點的距離是否小于預(yù)設(shè)距離;若是,則將遠點確定為角點;若否,則將更新分割直線作為初始分割直線返回步驟S3。其中,預(yù)設(shè)夾角與預(yù)設(shè)距離可以根據(jù)實際需要而定,本發(fā)明并不作出具體限制。
當(dāng)輪廓曲線的全部角點確定之后,通過直線將任意相鄰的兩個角點連接,得到由多條直線形成的船體外板輪廓曲線,這樣便完成了輪廓曲線的擬合過程,將輪廓曲線由若干條直線相連,利用多條直線形成一個無線逼近輪廓曲線的多邊形,且上述方法計算量較小,而精度較高。
針對上述方法,下文中將結(jié)合附圖具體描述。
首先可以先進行閾值預(yù)設(shè),也就是上文中預(yù)設(shè)夾角和預(yù)設(shè)距離的設(shè)定;假設(shè)設(shè)定預(yù)設(shè)距離為dm,預(yù)設(shè)夾角為θm。
在獲取船體外板的輪廓曲線之后建立坐標系,如說明書附圖2所示;然后進行初次分割,即步驟S1與步驟S2;在輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將輪廓曲線分割為上下兩個子邊界。
輪廓曲線與初始分割直線產(chǎn)生兩個交點,如說明書附圖3所示,初始分割直線即為直線CD,兩個交點分別為點C和點D。
針對每一子邊界,計算子邊界到初始分割直線即為直線CD的距離,并找到距離最大的點;如說明書附圖3所示,針對位于直線CD上方的上子邊界,點A到直線CD的距離最大,針對位于直線CD下方的下子邊界,點B到直線CD的距離最大,即完成了步驟S3。
將點A與點C通過直線相連,點A與點D通過直線相連,點B與點C通過直線相連,點B與點D通過直線相連;直線AC、直線AD、直線CB與直線CD即為四條更新分割直線,如步驟S4。
上述步驟S4中,產(chǎn)生更新分割直線;在步驟S5中,如果任意相鄰的兩個更新分割直線之間的夾角的補角小于預(yù)設(shè)夾角,并且子邊界中相距遠點的距離小于預(yù)設(shè)距離,則將遠點確定為角點;如果不滿足上述條件,則將更新分割直線作為初始分割直線返回步驟S3。
在具體實施步驟中,船體外板的輪廓曲線的中部取一條水平的初始分割直線,將輪廓曲線分割為上下兩部分,如說明書附圖3所示。
以初始分割直線作為橫坐標,以一垂直于橫坐標的直線作為縱坐標建立直角坐標系,二維圖像上的每一個點都有其對應(yīng)的坐標,設(shè)為(x,y),如說明書附圖2所示。
設(shè)定輪廓曲線上的點到初始分割直線的距離為d,分別比較輪廓曲線離初始分割直線最遠的點,可通過計算max(d),找出離分割線最遠的點,即遠點。
具體計算每一子邊界上的點到達對應(yīng)初始分割直線距離的具體的處理步驟如下所示:
計算初始分割直線的方程:設(shè)CD為初始分割直線與輪廓曲線的交點,A點的坐標為(x1,y1),C點的坐標為(x2,0),即可求得初始分割直線AC的直線方程。設(shè)直線的方程為y=kx+b,將上述的A,C兩點代入直線方程,可得:
解得:
即直線方程可以寫成:
接下來可以通過計算點到直線的距離找出以AC為分割線的那一部分的邊界曲線上離分割線最遠的點。設(shè)輪廓曲線上點的坐標為(x0,y0),則該點到分割直線的距離具體計算過程如下所示:
將方程(2)轉(zhuǎn)化為一般式:
(x1-x2)y-y1x+y1x2=0 (3)
則點到上述直線的距離可以表示為:
如說明書附圖4所示,說明書附圖5即為利用直線逼近輪廓曲線的示意圖。
在具體實施過程中,步驟S5中,產(chǎn)生的更新分割直線過程具體方式為:比較步驟S3中得到的遠點與初始分割直線之間的距離,若d>dm,則將所述遠點與所述交點通過直線連接,作為更新分割直線,即步驟S4。
在具體實施過程中,步驟S5中,對上述步驟S4得到的一系列更新分割直線,計算更新分割直線之間相交的夾角是否大于設(shè)定的閾值θm,若大于θm,則將該夾角的頂點視為曲面的角點。
具體包括以下步驟:
a、根據(jù)方程(1)可以得到每一條分割直線的斜率,通過已知的直線斜率可以計算出相鄰分割直線之間的夾角。
假設(shè)兩條直線的斜率分別為k1,k2,把分割直線L1依逆時針方向旋轉(zhuǎn)到與L2重合時所轉(zhuǎn)的角,也就是任意相鄰的兩個所述更新分割直線之間的夾角的補角,即為兩條分割直線夾角,設(shè)為θ,夾角可根據(jù)如下公式求得:
即
當(dāng)θ大于設(shè)定的閾值θm時,則認為該夾角的頂點為曲面的角點。
b、令角點上相鄰的兩條分割直線方程分別表示為:y=k1x+b1,y=k2x+b2,角點的坐標為:
k1x+b1=k2x+b2 (7)
解等式(7)可得:角點坐標為
如說明書附圖6所示,圖7為通過角點確定輪廓曲線邊界的示意圖。
通過上述可知,與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:復(fù)雜輪廓曲線多邊形逼近分割方法,將三維點云數(shù)據(jù)投影在二維平面;對投影的二維圖像進行邊界曲線分割,得到一個無限逼近曲面輪廓的多邊形,根據(jù)多邊形的夾角找出曲面角點。通過本發(fā)明所述的方法,計算機可以精確獲得當(dāng)前復(fù)雜外板的角點位置,從而推測出即將需要加工的外板的形狀,便于后續(xù)的處理。該方法準確性高、簡單易實時,能夠與自動控制系統(tǒng)進行信息化交流。
下面對本發(fā)明實施例提供的用于確定船體外板角點的裝置進行介紹,下文描述的裝置與上文所述的方法可以相互對照。
本發(fā)明提供的一種用于確定船體外板角點的裝置,如說明書附圖8所示,主要包括:
獲取模塊100:用于獲取船體外板的輪廓曲線;
分割模塊200:用于在所述輪廓曲線的區(qū)域內(nèi)取一條初始分割直線,將所述輪廓曲線分割為子邊界;
遠點確定模塊300:用于獲取所述初始分割直線與所述輪廓曲線的兩個交點以及所述子邊界中相距所述初始分割直線最遠的遠點;
分割直線更新模塊400:用于將所述遠點與所述交點通過直線連接,作為更新分割直線;
判斷模塊500:用于判斷任意相鄰的兩個所述更新分割直線之間的夾角的補角是否小于預(yù)設(shè)夾角,并且判斷所述遠點相距所述初始分割直線的距離是否小于預(yù)設(shè)距離;若是,則將所述遠點確定為角點;若否,則將所述更新分割直線作為初始分割直線并觸發(fā)遠點確定模塊。
其中,所述獲取模塊包括:
掃描儀:用于將所述船體外板的三維輪廓掃描至二維平面上,獲取所述船體外板的輪廓曲線。
其中,所述分割模塊具體為在所述輪廓曲線的中部取一條水平的初始分割直線,將所述輪廓曲線分割為子邊界。
其中,還包括:
船體外板輪廓曲線成型模塊:用于通過直線將任意相鄰的兩個所述角點連接,得到由多條直線形成的船體外板輪廓曲線。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述較為簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件的方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。需要說明的是,在本說明書中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體與另外幾個實體區(qū)分開來,而不一定要求或者暗示這些實體之間存在任何這種實際的關(guān)系或者順序。
以上對本發(fā)明所提供的用于確定船體外板角點的方法與裝置進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。