本項發(fā)明屬于圖像處理領域,特別涉及一種基于邊緣檢測和圖像拼接的書畫自動配框方法。
背景技術(shù):
:對于書畫銷售商家,需要為一幅畫配置多種畫框以滿足不同客戶的需求。而且商家獲得的畫框圖像素材,一般是三角框。傳統(tǒng)模式下,商家采用圖像處理技術(shù)將三角框補全成四角環(huán)形框,再與油畫拼接搭配。這種手工動作在大批量油畫銷售情況下成了阻礙油畫銷售的行業(yè)痛點。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于邊緣檢測和圖像拼接的書畫自動配框方法,與其他圖像處理工具的畫像配框方法相比具有操作簡單,畫框圖像獲取方便的優(yōu)點,提高了配框效率。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于邊緣檢測和圖像拼接的書畫自動配框方法,包括:步驟1,讀取輸入的待處理畫框圖像和畫像圖像;步驟2,使用canny算法對所述畫框圖像進行邊緣檢測,獲得邊緣信息圖像;步驟3,計算邊緣信息圖像中的每一個封閉區(qū)域的面積并比較;挑選出面積最大的區(qū)域作為輪廓信息圖像;刪除非輪廓的點,保留輪廓信息點,并在篩選完輪廓信息之后自動對畫框圖像進行裁剪;步驟4,沿輪廓信息圖像找到畫框圖像輪廓的內(nèi)邊緣和兩邊上的邊角拐點,裁去多余的邊角部分獲得裁剪后的畫框圖像;步驟5,在輪廓信息圖像中找到與其對角頂點距離最長的輪廓信息點作為內(nèi)拐點;步驟6,將裁剪后的畫框圖像進行水平方向、豎直方向及中心的對稱變換,獲得處理好的畫框圖像;步驟7,創(chuàng)建一個長和寬分別等于裁剪后的畫框圖像的長和寬的兩倍的空白圖像;步驟8,設置所述新建空白圖像的感興趣區(qū)域,將處理好的畫框圖像依次放入所述感興趣區(qū)域中拼接成合成畫框圖像;步驟9,將提取到的內(nèi)拐點坐標轉(zhuǎn)化為合成畫框圖像兩邊的寬度;步驟10,根據(jù)所述畫像圖像的長和寬及合成畫框圖像兩邊的寬度成比例地預留出帶畫框的畫像圖像中的畫框?qū)挾?;步驟11,將合成的畫框圖像放入根據(jù)畫像圖像長寬及畫框?qū)挾葎?chuàng)建新的空白圖像,設置新建空白圖像的感興趣區(qū)域,將畫像圖像放入所述感興趣區(qū)域與畫框圖像進行拼接并輸出。優(yōu)選的,步驟2包括:使用灰度轉(zhuǎn)化公式將具有R、G、B三種顏色分量的彩色畫框圖像轉(zhuǎn)化成灰度圖像;使用高斯平滑濾波器卷積降噪;使用Sobel濾波器計算梯度的幅值和方向;對梯度幅值進行非極大值抑制;用雙閾值算法檢測和連接邊緣。優(yōu)選的,步驟3中,將保留的輪廓信息點賦值為255。優(yōu)選的,步驟4包括:沿輪廓信息圖像的水平中線和豎直中線找到值為255的像素點,令所述像素點所在的列和行為裁剪后的畫框圖像輪廓的內(nèi)邊緣;沿著畫框圖像兩條內(nèi)邊及其兩側(cè)的2~3列或行像素點緣滾動,找到兩邊上的邊角拐點,并分別裁去多余的邊角部分。優(yōu)選的,步驟5包括:在畫框輪廓信息圖像中選定自邊緣起始間隔數(shù)個像素行列開始到畫框輪廓信息圖像一半的長寬的位置的區(qū)域,遍歷此區(qū)域上的每一個值為255的點并計算其與圖像對角頂點的距離;對比每個距離,找到與對角距離最長的點作為內(nèi)拐點;記錄所述內(nèi)拐點的坐標。優(yōu)選的,步驟7中,所述處理好的畫框圖像包括裁剪后的畫框圖像、水平方向?qū)ΨQ變換后的圖像、豎直方向?qū)ΨQ變換后的圖像和中心對稱變換后的圖像。優(yōu)選的,步驟8中,所述感興趣區(qū)域包括4個,4個感興趣區(qū)域的起始坐標分別為(0,0)、(0,height)、(width,0)、(width,height),其中,height表示裁剪后的畫框圖像的長,width表示裁剪后的畫框圖像的寬;每個感興趣區(qū)域的長和寬等于裁剪后的畫框圖像的長和寬。優(yōu)選的,步驟10包括:將畫像圖像的長和寬分別與合成畫框圖像的長和寬求商,獲得縮放比例,并用來縮放合成畫框圖像兩邊的寬度獲得待調(diào)整的長和寬;將畫像圖像的長與所述待調(diào)整的長的兩倍求和,獲得拼接底圖的長;將畫像圖像的寬與所述待調(diào)整的寬的兩倍求和,獲得拼接底圖的寬;如果拼接底圖的寬長比超過3/2,調(diào)整畫框圖像預留的寬度使畫框兩邊的寬度比滿足大于2/3且小于3/2。本發(fā)明具有如下有益效果:本發(fā)明基于對畫框圖像的識別而不是基于紋理展開,首先通過攝像工具獲得畫框圖像,并簡單的去掉外圍背景;再通過圖像識別技術(shù)對其進行處理并進行與畫像圖像進行拼接,本發(fā)明方法克服了使用其他圖像處理工具進行處理需要一定的專業(yè)知識的高門檻以及畫框圖像庫不能及時更新的短板。以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明,但本發(fā)明的一種基于邊緣檢測和圖像拼接的書畫自動配框方法不局限于實施例。附圖說明圖1為本發(fā)明方法的流程圖;圖2為本發(fā)明實施例的一畫框;圖3為本發(fā)明實施例的自動配框界面;圖4為本發(fā)明實施例的選擇畫像圖像和畫框圖像后的自動配框界面;圖5為本發(fā)明實施例的在自動配框界面左側(cè)的顯示區(qū)域內(nèi)顯示合成圖像。具體實施方式參見圖1,一種基于邊緣檢測和圖像拼接的書畫自動配框方法,通過軟件編程實現(xiàn),具體的,基于跨平臺計算機視覺庫OpenCV實現(xiàn),可以運行在Linux、Windows和MacOS等操作系統(tǒng)上。包括如下步驟:步驟1,讀取輸入的待處理畫框圖像和畫像圖像。具體的,使用模態(tài)對話框獲得圖像傳入的相對地址,可以使用的圖像類型包括.jpg、.png等格式的圖像,并將其以IplImage的數(shù)據(jù)結(jié)構(gòu)進行存儲,存儲為pImgSrc與pyuantu,分別表示讀入的畫框圖像和畫像圖像。步驟2,使用canny算法對所述畫框圖像進行邊緣檢測,獲得邊緣信息圖像。具體的,包括如下步驟:(1)使用cvCvtColor函數(shù)對pImgSrc圖像進行灰度轉(zhuǎn)化:通過灰度轉(zhuǎn)化公式Gray=0.299×R+0.587×G+0.144×B將具有R、G、B三種顏色分量的彩色圖像轉(zhuǎn)化成灰度圖像pImg8u。其中,R、G、B分別表示彩色圖像每個像素的R、G、B值。(2)通過cvCanny函數(shù)對圖像進行邊緣檢測:①使用高斯平滑濾波器卷積降噪;如下所示為一個5階的高斯平滑濾波器:K=1139245424912945121512549129424542]]>②使用Sobel濾波器計算梯度的幅值和方向;具體的,運用一對卷積陣列(分別作用于x方向與y方向)Gx=-10+1-20+2-10+1Gy=-1-2-1000+1+2+1]]>使用和分別計算梯度的幅值和方向。③對梯度幅值進行非極大值抑制;通過本步驟進一步排除非邊緣像素,僅保留一些細線條(候選邊緣)。④用雙閾值算法檢測和連接邊緣;具體的,通過高閾值和低閾值兩個參數(shù),對像素幅值進行篩選,高于高閾值的保留,低于低閾值的刪除,在高低閾值之間的,當該像素連接到一個高于高閾值的像素時被保留。canny算法處理后獲得邊緣信息圖像,將邊緣信息圖像存儲為pImgCanny。步驟3,計算邊緣信息圖像中的每一個封閉區(qū)域的面積并比較;挑選出面積最大的區(qū)域作為輪廓信息圖像;刪除非輪廓的點,保留輪廓信息點,并在篩選完輪廓信息之后自動對畫框圖像進行裁剪。具體的,canny算法處理后獲得的邊緣信息是連續(xù)的,同時考慮到檢測出的畫框圖像的輪廓一定是連續(xù)且閉合的封閉曲線,因此通過cvContourArea計算獲得邊緣信息圖像中的每一個封閉區(qū)域的面積,并對它們進行比較。挑選出面積最大的區(qū)域作為輪廓信息圖像;進一步的,將非輪廓的點刪除,保留輪廓信息點并賦值為255,在篩選完輪廓信息之后自動的對畫框圖像進行裁剪。步驟4,沿輪廓信息圖像找到畫框圖像輪廓的內(nèi)邊緣和兩邊上的邊角拐點,裁去多余的邊角部分獲得裁剪后的畫框圖像。具體的,沿輪廓信息圖像的水平中線和豎直中線找到值為255的像素點,此像素點所在的列和行即為裁剪后的畫框圖像輪廓的內(nèi)邊緣,在允許誤差的情況下沿著畫框圖像兩條內(nèi)邊及其兩側(cè)的2~3列(行)像素點緣滾動,找到兩邊上的邊角拐點,分別裁去多余的邊角部分,將裁剪后的畫框圖像保存為pImgReg。步驟5,在輪廓信息圖像中找到與其對角頂點距離最長的輪廓信息點作為內(nèi)拐點,記錄所述內(nèi)拐點的坐標。具體的,在畫框輪廓信息圖像中選定自邊緣起始間隔數(shù)個像素行列開始到畫框輪廓信息圖像一半的長寬的位置的區(qū)域,對該區(qū)域上的每一個值為255的信息點進行遍歷,然后通過計算區(qū)域內(nèi)每個輪廓信息點距圖像對角頂點的距離(其中x表示橫軸上的距離,y表示縱軸上的距離,d表示對角頂點的距離),并比較每個距離。找到與其對角距離最長的點,此點即為畫框的內(nèi)拐點,記錄此點的坐標(interx,intery)。步驟6,將裁剪后的畫框圖像進行水平方向、豎直方向及中心的對稱變換,獲得處理好的畫框圖像。具體的,使用cvFlip函數(shù)對裁剪后的畫框圖像進行水平方向上的對稱變換,豎直方向上的對稱變換以及中心對稱變換,獲得畫框四個頂角的圖像,所述畫框四個頂角的圖像包括包括裁剪后的畫框圖像、水平方向?qū)ΨQ變換后的圖像、豎直方向?qū)ΨQ變換后的圖像或中心對稱變換后的圖像,這四個圖像為處理好的畫框圖像。步驟7,創(chuàng)建一個長和寬分別等于裁剪后的畫框圖像的長和寬的兩倍的空白圖像。具體的,使用cvCreateImage函數(shù)創(chuàng)建一個用于拼接的空白圖像,所述空白圖像的長和寬分別等于裁剪后的畫框圖像的長和寬的兩倍。步驟8,設置所述新建空白圖像的感興趣區(qū)域,將處理好的畫框圖像依次放入所述感興趣區(qū)域中拼接成合成畫框圖像。具體的,使用cvSetImageROI分別設置所述空白圖像的感興趣區(qū)域,并設置起始坐標分別為(0,0)(0,height)(width,0)(width,height),其中,height表示裁剪后的畫框圖像的長,width表示裁剪后的畫框圖像的寬。每個感興趣區(qū)域的長和寬等于裁剪后的畫框圖像的長和寬。然后按照對應的起始坐標位置,將處理好的畫框圖像依次放入四個感興趣中,合成完整的畫框圖像,并將合成的畫框圖像保存為img_mirror。步驟9,將提取到的內(nèi)拐點坐標轉(zhuǎn)化為合成畫框圖像兩邊的寬度。具體的,將提取到的內(nèi)拐點坐標(interx,inery)轉(zhuǎn)化為合成畫框圖像兩邊的寬度。具體的,將interx與pImgReg的width作差保留絕對值,以及將intery與pImgReg的height作差保留絕對值,獲得miorr_bord_x與miorr_bord_y。步驟10,根據(jù)所述畫像圖像的長和寬及合成畫框圖像兩邊的寬度成比例地預留出帶畫框的畫像圖像中的畫框?qū)挾?。具體的,根據(jù)所述畫像圖像的長寬和獲得的畫框圖像內(nèi)拐點的坐標計算出的畫框兩邊的寬度,成比例的預留出待合成的帶有畫框的畫像圖像中的畫框?qū)挾?。通過將pyuantu的長和寬分別與img_mirror的長和寬作商求得縮放比例,并用來縮放miorr_bord_x和miorr_bord_y,將改變后的畫框?qū)挾却鏋閙iorr_bord_x_change與miorr_bord_y_change。同時,計算拼接底圖的長和寬,分別用如下公式表示:bi_high=pyuantu->height+miorr_bord_y_change×2bi_wid=pyuantu->width+miorr_bord_x_change×2進一步的,若底圖的的寬長比過大(例:)則重新對畫框預留的寬度進行調(diào)整,使畫框兩邊寬度比保證畫框的寬度滿足視覺上舒適的效果。如圖2所示,本實施例中,寬表示水平邊,長表示豎直邊。步驟11,將合成的畫框圖像放入根據(jù)畫像圖像長寬及畫框?qū)挾葎?chuàng)建新的空白圖像,設置新建空白圖像的感興趣區(qū)域,將畫像圖像放入所述感興趣區(qū)域與畫框圖像進行拼接并輸出。具體的,使用cvCreateImage創(chuàng)建一個空白圖像img_jian,其長寬分別為bi_high_adjust=pyuantu->height+miorr_bord_y_adjust×2和bi_wid_adjust=pyuantu->width+miorr_bord_x_adjust×2。將合成的畫框圖像填入空白圖像,接著設置空白圖像img_jian的感興趣區(qū)域,區(qū)域起始坐標為(miorr_bord_x_adjust,miorr_bord_y_adjust),區(qū)域范圍為畫像圖像的長pyuantu->height和寬pyuantu->width;最后,通過模態(tài)對話框?qū)⒆罱K合成圖像進行保存,所述最終合成圖像指畫像圖像pyuantu和處理好的畫框圖像img_mirror進行拼接以后合成的圖像img_jian。為了更直觀地理解本發(fā)明方法的應用過程,如下簡要演示某次自動配框過程。如圖3所示為自動配框界面,界面包括五個按鈕,分別為“選擇圖像”、“選擇畫框”、“圖像合成”、“顯示預覽”和“圖像保存”;另外,包括三個區(qū)域:顯示圖像、顯示畫框、顯示合成后的圖像,用于分別顯示選擇的圖像、選擇的畫框和合成的圖像。首先點擊選擇圖像按鈕,會打開一個模態(tài)對話框,用來選擇畫像圖像;然后點擊選擇畫框按鈕,同樣會打開一個模態(tài)對話框,用來選擇畫框圖像;如圖4所述為選擇畫像圖像和畫框圖像后的自動配框界面。然后點擊“圖像合成”按鈕,程序自動進行本發(fā)明方法所述的操作,如圖5所示,將合成圖像顯示在自動配框界面左側(cè)的顯示區(qū)域內(nèi)。顯然,在自動配框界面顯示的合成圖像長寬比與原圖不一致,更符合視覺上舒適的效果。如果想顯示沒有被改變比例的合成圖像,需要點擊“顯示預覽”按鈕,如果需要對合成圖像進行保存,點擊“圖像保存”。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3