本發(fā)明涉及圖像處理領(lǐng)域,更具體地,涉及一種基于紋理縫合的圖像十字繡風(fēng)格化方法及裝置。
技術(shù)背景
十字繡是一種具有悠久歷史的傳統(tǒng)民族刺繡方法,受人喜愛。它采用專門的繡線和十字格布,利用經(jīng)緯交織的搭十字的方法,對照專用的坐標(biāo)圖案,即繡譜,進行刺繡。但是一張十字繡的完整創(chuàng)作的周期很長,先選取圖案,再劃分網(wǎng)格,然后人工逐網(wǎng)格地選取繡線和針法,提取繡譜。最后是根據(jù)這張人工制作好的繡譜進行十字繡繡制,直到繡制完成才能看到最終的效果。這個過程,特別是繡譜提取的步驟,不僅工作量大,并且很枯燥,容易出錯,反饋時間也很長。
雖然現(xiàn)在市面上已經(jīng)有十字繡軟件,如pmaker、pcstitch,它們可以用來輔助十字繡繡譜的創(chuàng)作。但是它們本質(zhì)上更像是一個畫圖工具。它們提供分網(wǎng)格的畫布,然后讓用戶在給定顏色的畫板上選擇顏色,用以繪制修譜。它本質(zhì)上還是需要用戶自己進行圖案的抽象化以及逐格子的修譜創(chuàng)作,只是將傳統(tǒng)的在網(wǎng)格紙上的創(chuàng)作改成在軟件提供的網(wǎng)格畫布上進行創(chuàng)作。本質(zhì)上還是一個大量消耗人力的人工創(chuàng)作過程。
常規(guī)的圖像風(fēng)格化都在研究油畫、水彩畫、素描畫等的模擬。暫無一套方法可以直接用來進行圖像十字繡風(fēng)格化。十字繡風(fēng)格的圖像與其他常規(guī)風(fēng)格化圖像有一些比較相似的地方,他們都強調(diào)圖案內(nèi)容的抽象化,非真實。但十字繡風(fēng)格的圖像也具有一些很明顯和獨特的特點。例如,十字繡的創(chuàng)作常常只會使用少量種類的繡線,并且這些繡線的顏色種類也是有限的,不像其他風(fēng)格化那樣圖像顏色可以包含整個顏色空間。并且十字繡創(chuàng)作所使用的材質(zhì)為經(jīng)緯相交的白色底布和扭纏明顯的顏色繡線,整幅圖像會體現(xiàn)出獨特的光照效果,顏色具有較強的飽和度,光照跳躍明顯,質(zhì)地上體現(xiàn)出一種很強的顆粒感。所以,我們不能很方便的直接套用常規(guī)的一些風(fēng)格化方法來進行十字繡風(fēng)格化圖像的合成。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,首先提出了一種基于紋理縫合的圖像十字繡風(fēng)格化方法。它可以對圖像進行風(fēng)格化處理,合成具有十字繡風(fēng)格的圖像,這樣人們就能夠在開始繡制前得到大致的視覺反饋,了解繡制后的十字繡的大致外觀。并且,在風(fēng)格化處理的過程中,還能夠自動化的提取出該幅十字繡的繡譜,從而減去了設(shè)計師的一些枯燥繁冗的勞動,大大加快了創(chuàng)作過程。
本發(fā)明還提出一種基于紋理縫合的圖像十字繡風(fēng)格化裝置。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種基于紋理縫合的圖像十字繡風(fēng)格化方法,所述方法包括:
s1、抽象化輸入圖像,獲得抽象化圖像;
s2、對抽象化圖像進行背景剔除操作,獲得背景遮蔽圖和抽象化前景圖;
s3、對抽象化前景圖進行顏色簡化及規(guī)范化處理,獲得顏色規(guī)范化圖像;
s4、對顏色規(guī)范化圖像進行繡譜提取操作,獲得十字繡繡譜圖;
s5、對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理,獲得十字繡風(fēng)格圖。
采用上述技術(shù)方案后,可以將一張普通的圖片轉(zhuǎn)變?yōu)榫哂惺掷C風(fēng)格的圖像,即對一張普通的圖片進行風(fēng)格化處理,合成具有十字繡風(fēng)格的圖像,這樣人們就能夠在開始繡制前得到大致的視覺反饋,了解繡制后的十字繡的大致外觀。并且,在風(fēng)格化處理的過程中,還能夠自動化的提取出該幅十字繡的繡譜,從而減去了設(shè)計師的一些枯燥繁冗的勞動,大大加快了創(chuàng)作過程。
優(yōu)選的,所述步驟s3對抽象化前景圖進行顏色簡化及規(guī)范化處理,具體過程為:
對抽象化前景圖進行顏色聚類處理,獲得顏色簡化圖像;
將顏色簡化圖像中的顏色與繡線顏色庫中的顏色進行最近顏色匹配處理,獲得顏色規(guī)范化圖像。
采用上述優(yōu)選的技術(shù)方案,可以將抽象化前景圖的顏色種類規(guī)范化到繡線顏色庫的范圍,從而有利于后面繡譜的提取。
優(yōu)選的,所述步驟s4對顏色規(guī)范化圖像進行繡譜提取操作,其具體過程為:
s41、提取顏色規(guī)范化圖像的目標(biāo)顏色,獲得繡線表頭;
s42、結(jié)合背景遮蔽圖,將顏色規(guī)范化圖像進行網(wǎng)格化,獲得針法圖;
s43、對繡線表頭和針法圖進行處理,獲得十字繡繡譜圖。
采用上述優(yōu)選的技術(shù)方案,可以準(zhǔn)確地提取十字繡繡譜圖,從而可以了解之后的繡譜的合成。
優(yōu)選的,所述步驟s5對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理,具體過程為:
s51、制作繡譜基元庫,所述基元庫包括基元以及與所述基元對應(yīng)的基元遮蔽圖;
s52、對十字繡繡譜圖進行網(wǎng)格劃分,獲得對應(yīng)于每個網(wǎng)格的繡線表頭及針法圖;
s53、對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合其繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖;
s54、對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間的邊界,獲得十字繡風(fēng)格圖。
采用上述優(yōu)選的技術(shù)方案,可以合成更加自然的繡譜紋理,從而生成效果更好的十字繡風(fēng)格圖。
優(yōu)選的,所述步驟s53對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合其繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖,其過程為:
s531、根據(jù)十字繡繡譜中網(wǎng)格的針法圖,在基元庫中找出對應(yīng)的基元,獲得源基元圖;
s532、根據(jù)十字繡繡譜中網(wǎng)格的繡線表頭,查找繡線顏色庫,獲得目標(biāo)顏色;
s533、根據(jù)源基元圖及目標(biāo)顏色,使用顏色重構(gòu)方法,獲得目標(biāo)基元圖;
s534、對十字繡繡譜中每個網(wǎng)格都進行步驟s531至s533處理,獲得基元簡單拼接的十字繡風(fēng)格圖。
采用上述優(yōu)選的技術(shù)方案,可以獲得網(wǎng)格排列自然且緊密的簡單拼接十字繡風(fēng)格圖。
優(yōu)選的,所述步驟s533根據(jù)源基元圖及目標(biāo)顏色,使用顏色重構(gòu)方法的過程包括:
對源基元圖進行顏色聚類,根據(jù)每個種類的目標(biāo)顏色,獲得初始landmark點集;
以landmark點集作為輸入,使用以下公式獲得u顏色通道值,
其中,
對v通道做與u通道相同的處理,獲得v顏色通道值;
結(jié)合u顏色通道值,v顏色通道值,將源基元的灰度圖,獲得重構(gòu)彩色基元圖;
根據(jù)重構(gòu)彩色基元圖與源基元圖,對原始的landmark點集進行處理,獲得最終的landmark點集;
使用最終的landmark點集,再一次對源基元灰度圖進行uv顏色通道重建,獲得目標(biāo)基元圖。
采用上述優(yōu)選的方案,可以獲得與目標(biāo)顏色一致的基元圖。
優(yōu)選的,所述步驟s54對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間的邊界,其具體過程包括:
s541、對基元簡單拼接的十字繡風(fēng)格圖,使用大規(guī)模基元優(yōu)先匹配方法,獲得基元匹配圖;
s542、對基元匹配圖,使用排序的l字形縫合方法,獲得初步縫合結(jié)果圖;
s543、對初步縫合結(jié)果圖,使用接縫基元替換方法,獲得十字繡風(fēng)格圖。
采用上述優(yōu)選的方案,可以獲得不同紋理之間過渡自然的十字繡風(fēng)格圖。
一種基于紋理縫合的圖像十字繡風(fēng)格化裝置,所述裝置包括:
抽象化模塊,用于抽象化輸入圖像,獲得抽象化圖像;
背景剔除模塊,用于剔除抽象化圖像的背景,獲得背景遮蔽圖和抽象化前景圖;
顏色簡化及規(guī)范化模塊,用于對抽象化前景圖進行顏色簡化及規(guī)范化處理,獲得顏色規(guī)范化圖像;
繡譜提取模塊,用于對顏色規(guī)范化圖像進行繡譜提取操作,獲得十字繡繡譜圖;
紋理合成模塊,用于對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理,獲得十字繡風(fēng)格圖。
優(yōu)選的,所述顏色簡化及規(guī)范化模塊包括:
顏色聚類模塊,用于對抽象化前景圖進行顏色聚類處理,獲得顏色簡化圖像;
顏色匹配模塊,用于將顏色簡化圖像中的顏色與繡線顏色庫中的顏色進行最近顏色匹配處理,獲得顏色規(guī)范化圖像。
優(yōu)選的,所述繡譜提取模塊包括:
繡線表頭模塊,用于提取顏色規(guī)范化圖像的目標(biāo)顏色,獲得繡線表頭;
針法圖模塊,用于結(jié)合背景遮蔽圖,將顏色規(guī)范化圖像進行網(wǎng)格化,獲得針法圖;
繡譜生成模塊,用于對繡線表頭和針法圖進行處理,獲得十字繡繡譜圖。
優(yōu)選的,所述紋理合成模塊包括:
繡譜基元庫模塊,用于制作繡譜基元庫,所述基元庫包括基元以及與所述基元對應(yīng)的基元遮蔽圖;
繡譜信息提取模塊,用于對十字繡繡譜圖進行網(wǎng)格劃分,獲得對應(yīng)于每個網(wǎng)格的繡線表頭及針法圖;
基元縫合模塊,用于對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合其繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖;再對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間的邊界,獲得十字繡風(fēng)格圖縫合基元,獲得最終的十字繡風(fēng)格圖。
本發(fā)明的特點及有益效果為:
1)簡化了十字繡的創(chuàng)作過程,幫助人們進行十字繡的創(chuàng)造更豐富的十字繡作品;
2)降低十字繡制作成本,從而可以降低十字繡售價;
3)可以實現(xiàn)十字繡批量生產(chǎn),降低十字繡的制作周期,減少重復(fù)勞動。
4)降低制作十字繡的技術(shù)門檻,使得普通人也能制作出精美的十字繡。
附圖說明
圖1為基于紋理合成的圖像十字繡風(fēng)格化方法的流程示意圖;
圖2為基于紋理合成的圖像十字繡風(fēng)格化裝置示意圖;
圖3為基元圖庫示意圖;
圖4為接縫基元示意圖;
圖5為基元簡單拼接的十字繡風(fēng)格圖示意圖;
圖6為十字繡風(fēng)格化效果圖。
具體實施方法
為了使本發(fā)明的目的,技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步的詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是基于紋理合成的圖像十字繡風(fēng)格化方法示意圖。如圖1所示,該方法包括:
s1、圖像抽象化,獲得抽象化圖像。具體來說,先對圖像進行l(wèi)0smoothing處理,獲得初步抽象化圖像;再將初步抽象化圖像進行雙邊濾波處理,獲得最終的抽象化圖像。
s2、對抽象化圖像進行背景剔除操作,獲得背景遮蔽圖和抽象化前景圖。具體來說,對抽象化圖像,使用grabcut方法,獲得背景遮蔽圖和抽象化前景圖。
s3、對抽象化前景圖進行顏色簡化及規(guī)范化處理,獲得顏色規(guī)范化圖像。具體來說,包括兩個步驟:1、對抽象化前景圖進行顏色聚類處理,獲得顏色簡化圖像;2、對顏色簡化圖像中的顏色與繡線顏色庫中的顏色進行最近顏色匹配處理,即先對顏色簡化圖像中每一種顏色類別,分別求出每個類別的rgb均值,獲得每一個顏色類別的目標(biāo)顏色,再將每一個類別的目標(biāo)顏色,映射到與之最接近的繡線顏色庫中的顏色,最終獲得顏色規(guī)范化圖像。
s4、對顏色規(guī)范化圖像進行繡譜提取操作,獲得十字繡繡譜圖。具體來說,包括三個步驟:1、提取顏色規(guī)范化圖像的目標(biāo)顏色,獲得繡線表頭;2、結(jié)合背景遮蔽圖,將顏色規(guī)范化圖像進行網(wǎng)格化,獲得針法圖;3、對繡線表頭和針法圖進行合成處理,獲得十字繡繡譜圖。
s5、對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理,獲得十字繡風(fēng)格圖。具體來說,包括四個步驟:1、制作繡譜基元庫,其中基于庫包括基元以及與基元對應(yīng)的基元遮蔽圖,基元庫包括1x1基元,1x2基元,1x3基元,2x1基元,2x2基元等,基元庫還包括與基元對應(yīng)的基元遮蔽圖;2、對十字繡繡譜圖進行網(wǎng)格劃分,獲得對應(yīng)于每個網(wǎng)格的繡線表頭及針法圖;3、對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合它的繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖;4.對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間的邊界,獲得十字繡風(fēng)格圖。
其中,對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理步驟中獲得基元簡單拼接的十字繡風(fēng)格圖方法,具體操作如下:1)首先根據(jù)十字繡繡譜中網(wǎng)格的針法圖,在基元庫中找出對應(yīng)的基元,獲得源基元圖;2)根據(jù)十字繡繡譜中網(wǎng)格的繡線表頭,查找繡線顏色庫,獲得目標(biāo)顏色;3)根據(jù)源基元圖及目標(biāo)顏色,使用顏色重構(gòu)方法,獲得目標(biāo)基元圖;4)對十字繡繡譜中每個網(wǎng)格都進行以上三步處理,獲得基元簡單拼接的十字繡風(fēng)格圖。
其中,對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理步驟中,對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間邊界的具體操作如下:1)對基元簡單拼接的十字繡風(fēng)格圖,使用大規(guī)模基元優(yōu)先匹配方法,獲得基元匹配圖;2)對基元匹配圖,使用排序的l字形縫合方法,獲得初步縫合結(jié)果圖;3)對初步縫合結(jié)果圖,使用接縫基元替換方法,獲得十字繡風(fēng)格圖。
其中,對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合它的繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖步驟中根據(jù)源基元圖及目標(biāo)顏色,使用顏色重構(gòu)方法的具體步驟如下:
1)對源基元圖進行顏色聚類,根據(jù)每個種類的目標(biāo)顏色,獲得初始landmark點集;
2)在初始landmark點集中選出三個點,作為輸入landmark點,對源基元灰度圖進行u顏色通道重建,先使用以下公式獲得u顏色通道的能量值:
其中,
3)再以輸入的landmark點集作為限制條件,使用基本解線性方程組的原理,最小化
4)結(jié)合u顏色通道值,v顏色通道值,將源基元灰度圖值作為y顏色通道值,獲得yuv彩色基元圖;將yuv彩色基元圖轉(zhuǎn)變?yōu)閞gb彩色基元圖,獲得重構(gòu)彩色基元圖;
5)將重構(gòu)彩色基元圖與源基元圖相減,獲得殘差基元圖;對殘差基元圖進行分塊,找出每塊中殘差最大的點,找出其在源基元圖中的位置,并將其作為新的landmark點加入到landmark點集中;
6)使用源基元圖對應(yīng)的基元遮蔽圖,將landmark點集中的landmark點分成clset(crosslandmarkset)點集和nclset(noncrosslandmarkset)點集;求clset點集的均值,再將由rgb顏色通道轉(zhuǎn)換為hsv顏色通道,獲得源顏色均值;
7)將目標(biāo)顏色由rgb顏色通道轉(zhuǎn)變?yōu)閔sv顏色通道,獲得目標(biāo)顏色均值;將目標(biāo)顏色均值hsv通道值分別減去源顏色均值hsv通道值,獲得偏移顏色均值;
8)將clset點集中所有點由rgb顏色通道轉(zhuǎn)變?yōu)閔sv顏色通道,再加上偏移顏色均值,最后再由hsv顏色通道轉(zhuǎn)變?yōu)閞gb顏色通道,將處理后的clset點集與nclset點集合并,獲得landmark點集;使用最新的landmark點集,再一次對源基元灰度圖進行uv顏色通道重建,獲得目標(biāo)基元圖;9)對十字繡繡譜中所有的基元都進行以上處理,獲得各自的目標(biāo)基元圖,最終獲得基元簡單拼接的十字繡風(fēng)格圖。
其中,對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理步驟中,大規(guī)?;獌?yōu)先匹配方式的具體操作如下為:1)對基元簡單拼接的十字繡風(fēng)格圖的網(wǎng)格運用線性掃描方法,對所掃描的網(wǎng)格使用最大基元匹配算法,優(yōu)先在基元庫中匹配尺寸較大的基元,最后無法處理的區(qū)域使用1x1的基元塊進行填充,獲得基元匹配圖,獲得基元匹配圖;2)然后對基元匹配圖,使用排序的l字形縫合方法,即對基元匹配圖的每一個基元,采用線性掃描的方法,對當(dāng)前掃描的基元,先查看該基元左側(cè)和上側(cè)的基元是否已完成縫合,若沒有完成縫合,則先完成縫合;3)若已經(jīng)完成縫合,則縫合當(dāng)前的基元,直到所有的基元都完成縫合為止,獲得初步縫合結(jié)果圖,獲得初步縫合結(jié)果圖。
其中,使用接縫基元替換的具體步驟為,先將1x1基元劃分為2x2的小區(qū)域,并將1x1基元中的一個小區(qū)域與跟它相鄰但不屬于同一基元的三個小區(qū)域組成一個新的基元,獲得接縫基元;對初步縫合結(jié)果圖中,找出相鄰且不一致的區(qū)域,并用接縫基元替換,獲得接縫處理后縫合結(jié)果圖;對接縫處理后縫合結(jié)果圖使用矩形縫合,獲得十字繡風(fēng)格圖。
圖2為基于卷積紋理縫合的圖像十字繡風(fēng)格化裝置示意圖,如圖2所示,該裝置包括:
抽象化模塊d1:將圖像抽象化,獲得抽象化圖像。具體來說,先對圖像進行l(wèi)0smoothing處理,獲得初步抽象化圖像;再將初步抽象化圖像進行雙邊濾波處理,獲得最終的抽象化圖像。
背景剔除模塊d2:將抽象化圖像進行背景剔除操作,獲得背景遮蔽圖和抽象化前景圖。具體來說,對抽象化圖像,使用grabcut方法,獲得背景遮蔽圖和抽象化前景圖。
顏色簡化及規(guī)范化模塊d3:對抽象化前景圖進行顏色簡化及規(guī)范化處理,獲得顏色規(guī)范化圖像。具體來說,包括兩個子模塊:顏色聚類模塊d1和顏色匹配模塊d2。顏色聚類模塊d1的操作為:對抽象化前景圖進行顏色聚類處理,獲得顏色簡化圖像;顏色匹配模塊d2的操作為:對顏色簡化圖像中的顏色與繡線顏色庫中的顏色進行最近顏色匹配處理,即先對顏色簡化圖像中每一種顏色類別,分別求出每個類別的rgb均值,獲得每一個顏色類別的目標(biāo)顏色,再將每一個類別的目標(biāo)顏色,映射到與之最接近的繡線顏色庫中的顏色,最終獲得顏色規(guī)范化圖像。
繡譜提取模塊d4:對顏色規(guī)范化圖像進行繡譜提取操作,獲得十字繡繡譜圖。具體來說,包括三個子模塊:繡線表頭模塊d3,針法圖模塊d4和繡譜生成模塊d5。繡線表頭模塊d3的操作為:提取顏色規(guī)范化圖像的目標(biāo)顏色,獲得繡線表頭;針法圖模塊d4的操作為:結(jié)合背景遮蔽圖,將顏色規(guī)范化圖像進行網(wǎng)格化,獲得針法圖;繡譜生成模塊d5的操作為:對繡線表頭和針法圖進行合成處理,獲得十字繡繡譜圖。
紋理合成模塊d5:對十字繡繡譜圖進行繡譜指導(dǎo)的紋理合成處理,獲得十字繡風(fēng)格圖。具體來說,包括三個子模塊:繡譜基元庫模塊d6,繡譜信息提取模塊d7和基元縫合模塊d8。繡譜基元庫模塊d6的操作為制作繡譜基元庫,基元庫包括1x1基元,1x2基元,1x3基元,2x1基元,2x2基元等,基元都包括與之對應(yīng)的基元遮蔽圖;繡譜信息提取模塊d7的操作為對十字繡繡譜圖進行網(wǎng)格劃分,獲得對應(yīng)于每個網(wǎng)格的繡線表頭及針法圖,再對十字繡繡譜圖中的每個網(wǎng)格,結(jié)合它的繡線表頭及針法圖,使用基元庫中的基元,獲得基元簡單拼接的十字繡風(fēng)格圖;基元縫合模塊d8的操作為對基元簡單拼接的十字繡風(fēng)格圖,使用基元縫合處理方法,縫合基元之間的邊界,獲得十字繡風(fēng)格圖。
圖3為基元圖庫示意圖,如圖所示,基元庫中基元十字繡中一個重復(fù)的結(jié)構(gòu)體,尺寸有1x1,2x2等。
圖4為接縫基元示意圖,如圖所示,接縫基元的顏色多于一種。
圖5為基元簡單拼接的十字繡風(fēng)格圖示意圖。如圖所示,基元簡單拼接的十字繡風(fēng)格圖的基元之間的連接很突兀,不自然。
圖6為圖6為十字繡風(fēng)格化效果圖。