新四季網

基於jpeg圖片拼接的超大圖片合成方法

2023-06-10 10:54:41

專利名稱:基於jpeg圖片拼接的超大圖片合成方法
技術領域:
本發明屬於圖像處理技術領域,具體涉及ー種基於JPEG圖片拼接的超大圖片合成方法。
背景技術:
隨著科技的不斷進步,人們生活水平的不斷提高,數位相機的可用性和普及率也不斷提高,數碼照片的數量呈現爆炸性增長[I]。現今的大幅婚紗照、寫真照片及廣告圖片等已經十分普遍。對於衝印公司來說,提高列印相紙的利用率,節省資源和成本是他們追求的目標。所以,他們面臨的ー個極具挑戰性的問題是將大量小照片拼接問題,即如何能在一張畫布上不重疊的擺放儘量多的照片,使相紙的利用率達到最大,併合成一張超大的圖片以供列印輸出。對於照片拼接問題涉及到兩方面的技木ー是如何選擇ー個較優的排版算法將不同大小的照片儘可能多的排放於固定大小的版面中;ニ是如何生成ー張與已排版面ー樣大小的畫布,將已排版的照片繪製在畫布上從而生成一幅超大照片以供列印輸出。目前,對於圖片拼接方法,國內外學者已經做了大量的研究工作。文獻[2]用一組圖片產生了ー個自動的圖片拼接的結果,完成了圖片拼接的初始工作,但是拼接的結果中包含了大量的空白區域。文獻[3]中提出了ー種「數字織錦」的方法,從圖片集中自動產生ー個稠密的無縫圖片拼接效果,這種方法是圖片拼接的真正開端。這種拼接方式是將圖片中的有用部分拼接起來組合成一幅大圖。文獻[4]在圖片拼接時沒有採用無縫拼接的方式,即以圖片的原始內容和大小進行拼接,這種方式被廣泛應用於商業軟體中。文獻[I]至[4]中提到這些技術被廣泛應用於圖片集中多張照片的拼接瀏覽中,但沒有涉及到圖片列印輸出的問題。對於衝印公司來說,不僅需要好的排版算法來提高相紙的利用率,而且需要將排好照片的版面(可以看作是ー張超大圖)生成JPEG格式的圖片,並輸出到磁碟上保存起來以供後續列印。因此,如何快速生成超大的圖片是需要解決的技術難點。在實際應用中,由於計算機內存的限制無法一次生成一幅超大圖片,這樣就必須考慮拼接的方法。在現有的應用軟體中,首先利用GDI編程在指定的畫布上繪製出BMP格式的待拼接小圖;其次將所有小圖拼接為ー張超大BMP圖片;最後利用圖像壓縮技術將大圖壓縮為JPEG格式。利用BMP格式進行大圖片的合成過程簡單,但BMP圖片數據量很大,如果直接採用BMP圖片拼接會佔用大量內存空間。當內存空間不足以存放BMP圖片數據時,就需要磁碟文件作為中間文件,這樣會產生大量的輸入輸出,會耗費大量時間,尤其是目前的作業系統及編程工具對能生成的BMP畫布大小進行了限制,因此對於超大圖片來講,普通計算機拼接效率很低。參考文獻
[I]楊穎振動態圖片拼接.浙江大學 2008. 05[2]J.Geigel and A. Loui. Using genetic algoritnms for album Page layouts.IEEE Multimedia,2003,10(4) :16-27
[3] C. Rother, S. Kumar, V. Kolmogorov, and A. Blake. Digital tapestry. In Proe.of Computer Vision and pattern Recognition(CVpR),2005[4] J. Wang, J. Sun, L. Quan, X. Tang, and H. -Y. Shum. Picture collage. In Proc.of Computer Vision and pattern Recognition (CVpR), 200
發明內容
本發明的目的是提供一種基於JPEG圖片拼接的超大圖片合成方法,內存使用量小且穩定,具有較低的時間複雜度與空間複雜度。本發明所採用的技術方案是,一種基於JPEG圖片拼接的超大圖片合成方法,其特徵在於,具體步驟如下步驟I、設置待排版面的寬和高分別為W和H,W和H的単位均為像素,將待排版圖片採用矩形件排樣算法進行排版,使得待排版圖片儘可能多的排列在設定的版面上並保證 各待排版圖片之間不相互重合,同時記錄已排版照片的路徑、大小以及在排版後的版面中的位置信息;步驟2、設置JPEG圖片壓縮取樣方式,確定水平採樣因子的最大值Hmax和垂直採樣因子的最大值Vmax,Hmax和Vmax的単位均為像素,則JPEG圖片的最小編碼單元MCU的寬為Hmax*8,咼為 Vmax*8 ;步驟3、分塊生成每塊畫布Cpi = 0,1,2,……:令畫布Ci的寬Wi = W,i = 0,1,2,……,計算Wノ (H_*8),如果Wノ (H_*8)的值為整數,則在該畫布的每一行上最小編碼單元MCU的個數Ri = WiAHmaW);如果Wノ (Hmax*8)的值不為整數,則將該值捨去小數部分並加I後賦值給Ri ;令畫布Ci的高Hi包含n個MCU,則Hi = n* (Vmax*8),n為正整數,且n的取值應滿足以下條件11* く= 65535 ;計算生成畫布的塊數k :計算H/故,如果H/故的值為整數,則k = H/故,如果H/氏的值不為整數,則將該值捨去小數部分並加I後賦值給k ;步驟4、根據步驟I得到的已排版照片的路徑和其在版面中的位置信息,依次循環將已排版照片繪製到步驟3得到的每ー塊畫布上;步驟5、對步驟4中得到的第一塊繪製成功的畫布,根據步驟2設定的圖片壓縮取樣方式生成JPEG圖片,並將得到的圖片的數據信息保存於內存中;對步驟4得到的除第一塊以外其餘繪製成功的各塊畫布,根據步驟2設定的圖片壓縮取樣方式分別生成JPEG圖片,並將得到的圖片的數據信息去掉本圖片頭部後的信息後追加到前一幅圖片的尾部,在相鄰兩幅圖片的連接處將前一幅圖片的結束標誌FFD9修改為重入標記FFDn,n為0 7的循環;步驟6、修改步驟5最終得到的JPEG圖片的頭部信息,將該頭部信息中表示圖片寬和高的字節修改為全部塊畫布總的寬和高信息,最後將內存中的字節流生成超大圖片。步驟3中,分塊生成每塊畫布Ci的過程中應保證除最後ー塊畫布外,其餘的每塊畫布中所包含的MCU的總個數必須為該畫布每一行MCU個數Ri的整數倍,並且每塊畫布中MCU的個數要小於內存地址最大值65535 ;同時,如果H/氏的值為整數,則步驟3得到的各塊畫布的高Hi相等,並且為(V_*8)的整數倍。如果k = H/Hi、小數,則最後ー塊畫布的高為步驟I得到的排版後的版面與其餘各塊畫布的高Hi之和的差值。
本發明基於JPEG圖片拼接的超大圖片合成方法的有益效果是JPEG是經過壓縮後的圖片格式,與BMP格式的圖片相比,數據量大量減少,因此,直接利用JPEG圖片拼接能夠解決現有BMP拼接中存在的內存和時間問題。本發明方法是將排好版的大圖進行分塊,然後按塊生成JPEG圖片,然後將JPEG圖片直接用寫ニ進位文件的方法拼接成超大圖片的過程。這種方法內存使用量小且穩定,時間與空間複雜度較低,而且圖片拼接過程均在內存中完成,減少了中間過程所產生的大量輸入輸出,具有很高的拼接效率。


圖I是採用本發明方法合成不同大小的版面所消耗的時間曲線圖和空間曲線圖,其中,(a)為時間曲線圖,(b)為空間曲線圖;圖2是利用本發明方法生成的50寸*80寸的版面中的各塊JPEG圖片以及合成的 超大圖片,其中,(a)為第一塊JPEG圖片,(b)為第二塊JPEG圖片,(c)第三塊JPEG圖片,(d)為由(a)、(b)和(C)直接連接後合成的超大圖片。
具體實施例方式待排版圖片的集合PH被分布在ー個或者多個文件夾中,利用本發明方法將該待排版圖片進行超大圖片合成方法的具體步驟如下步驟I、設置待排版面的寬和高分別為W和H,W和H的単位均為像素,選擇待排版圖片PH所在的全部文件夾,將待排版圖片採用矩形件排樣算法進行排版,使得待排版圖片儘可能多的排列在設定的版面上並保證各待排版圖片之間不相互重合,得到排版後的版面,同時記錄已排版照片的路徑、大小以及在排版後的版面中的位置信息。本實施例中,採用基於最優水平線的矩形件排樣算法進行排版,該算法描述參見文獻「矩形件優化排樣的ー種啟發式算法」(陳仕軍,曹炬.,計算機工程與應用報,2010,46(12) =230-232)。步驟2、設置JPEG圖片壓縮取樣方式,確定水平採樣因子的最大值Hmax和垂直採樣因子的最大值V_,Hfflax和Vmax的単位均為像素,由於JPEG圖片進行量化的時候是以8*8的矩陣進行的,因此得到JPEG圖片的最小編碼單元MCU的寬為Hmax*8,高為Vmax*8。JPEG使用的顏色是YUV格式,其中,Y分量代表了亮度信息,UV分量代表了色差信息。目前,支持JPEG格式的軟體通常提供兩種壓縮取樣方式YUV411和YUV422,411和422中數字分別是YUV三個分量的數據取樣比例。舉例來說,如果Y取四個數據単元,即水平取樣因子Hmax乘以垂直取樣因子Vmax的值為4,而U和V各取一個數據単元,那麼這種壓縮取樣就稱為YUV411。步驟3、分塊生成每塊畫布Ci, i = 0,1,2,……,Ci的寬為Wi, i = 0,1,2,……,(;的高為氏,1 = 0,1,2,……。畫布為將原始大圖(即步驟I得到的排版後的版面)進行分塊生成的每ー塊小圖時,當前塊圖片佔用的矩形區間。其中,畫布Ci的寬Wi與步驟I中待排版面的寬相等,即Wi = W,計算Wノ(Hmax*8),如果Wノ (Hmax*8)的值為整數,則在該畫布的每一行上最小編碼單元MCU的個數Ri = Wi/(Hmax*8);如果評ノ^,)的值不為整數,則將該值捨去小數部分並加I後賦值給Ri ;令畫布Ci的高Hi包含n個MCU,則Hi = n* (Vmax*8),n為正整數,且n的取值應滿足以下條件-Ri<=65535。由於得到的全部畫布的總大小與步驟I得到的排版後的版面大小一致,因此可以通過以下方法計算生成畫布的塊數k :計算H/氏,如果H/故的值為整數,則k = H/故,如果H/Hj的值不為整數,則將該值捨去小數部分並加I後賦值給k。其中,如果H/氏的值為整數,則得到的各塊畫布的高Hi相等,並且為(V_*8)的整數倍。如果k = H/H,為小數,則最後ー塊畫布的高為步驟I得到的排版後的版面與其餘各塊畫布的高Hi之和的差值。另外,除最後ー塊畫布外,其餘的每塊畫布中所包含的MCU的總個數必須為該畫布每一行MCU個數Ri的整數倍,並且每塊畫布中MCU的個數要小於內存地址最大值65535。步驟4、根據步驟I得到的已排版照片的路徑和其在版面中的位置信息,依次循環將已排版照片繪製到步驟3得到的每ー塊畫布上。步驟5、對步驟4中得到的第一塊繪製成功的畫布,根據步驟2設定的圖片壓縮取樣方式生成JPEG圖片,並將得到的圖片的數據信息保存於內存中;對步驟4得到的除第一塊以外其餘繪製成功的各塊畫布,根據步驟2設定的圖片壓縮取樣方式分別生成JPEG圖片,並將得到的圖片的數據信息去掉本圖片頭部後的信息後追加到前一幅圖片的尾部,在相鄰兩幅圖片的連接處將前一幅圖片的結束標誌FFD9修改為重入標記FFDn,n為0 7的循環;本步驟中在相鄰兩幅JPEG圖片的連接處插入重入標記,重入標記為FFDO FFD7的循環,即當塊數k小於等於8時重入標記為FFDO FFDk+當k大於8吋,從第9塊開始重入標記又以FFDO開始循環。步驟6、修改步驟5最終得到的JPEG圖片的頭部信息,將該頭部信息中表示圖片寬和高的字節修改為全部塊畫布總的寬和高,最後將內存中的字節流生成超大圖片。步驟5中全部畫布均成功生成JPEG圖片後,即生成了用於合成超大圖片的全部塊圖片。步驟6中,將各塊圖片拼接在一起,此時,圖片只有一個頭部信息(當然頭部信息在第一塊畫布,也記錄的是第一塊畫布的寬和高),把這個頭部信息修改為超大圖片的寬和高,即完成超大圖片的合成。
本發明中到畫布的寬和高以及MCU的寬和高時,其單位均為像素。本發明方法的空間開銷主要是在分塊繪製圖片時,保存當前正在繪製的照片的開銷Sp,當某一塊繪製成功後,保存由繪製成功後的塊生成的JPG圖片的空間開銷も。當某一幅照片在特定塊中被繪製結束後,Sp被釋放。隨著繪製成功的塊數的增加,Sj會増大,但由於JPG圖片數據量很小,能正常瀏覽的JPG圖片大小一般在百兆以下,當圖片拼接成功生成大圖後,も被釋放。可以看出,本發明方法的空間消耗能滿足實際應用。從時間消耗上看,本發明方法的主要時間消耗發生在分塊繪製圖片的部分,時間會隨著待排版面的大小以及待排版圖片照片的多少發生變化,當待排版面變大,待排版圖片變多時,時間會變長。當全部畫布繪製成功後進行拼接的過程均是在內存中完成,時間消耗在毫秒級。本發明方法與現有直接利用BMP格式的圖片拼接的方法相比,在空間消耗與時間消耗上有一定優勢。因為BMP格式圖片數據量很大,在內存中無法直接保存BMP格式的圖片數據,所以在每ー塊繪製成功後,需要將數據寫回到磁碟文件中。在各塊拼接成功後,需要將BMP格式的圖片壓縮生成JPEG格式的圖片。當待排版面較大時,數據的輸入輸出以及數據的壓縮是ー個相當耗費時間和空間的過程。而採用本發明方法只需要在圖片拼接成功後輸出數據,並且輸出的數據已經是JPEG圖片格式,無需再對圖片進行壓縮。這在很大程度上減少了時間的消耗。如下表所示,為利用本發明方法與現有圖片拼接的方法分別進行超大圖片合成的實驗結果對比
權利要求
1.一種基於JPEG圖片拼接的超大圖片合成方法,其特徵在於,具體步驟如下 步驟I、設置待排版面的寬和高分別為W和H,W和H的単位均為像素,將待排版圖片採用矩形件排樣算法進行排版,使得待排版圖片儘可能多的排列在設定的版面上並保證各待排版圖片之間不相互重合,同時記錄已排版照片的路徑、大小以及在排版後的版面中的位置信息; 步驟2、設置JPEG圖片壓縮取樣方式,確定水平採樣因子的最大值Hmax和垂直採樣因子的最大值Vmax,Hmax和Vmax的単位均為像素,則JPEG圖片的最小編碼單元MCU的寬為Hmax*8,咼為U ; 步驟3、分塊生成每塊畫布Ci, i = 0,1,2,……令畫布Ci的寬1 = W,i = 0,1,2,……,計算Wノ (Hmax*8),如果Wノ (Hmax*8)的值為整數,則在該畫布的每一行上最小編碼單 元MCU的個數Ri = WiAHmaj^);如果Wノ (Hmax*8)的值不為整數,則將該值捨去小數部分並加I後賦值給Ri ;令畫布Ci的高Hi包含η個MCU,則Hi = n* (Vmax*8),η為正整數,且η的取值應滿足以下條件11* く= 65535 ; 計算生成畫布的塊數k :計算Η/故,如果Η/氏的值為整數,則k = H/Hi;如果Η/氏的值不為整數,則將該值捨去小數部分並加I後賦值給k ; 步驟4、根據步驟I得到的已排版照片的路徑和其在版面中的位置信息,依次循環將已排版照片繪製到步驟3得到的每ー塊畫布上; 步驟5、對步驟4中得到的第一塊繪製成功的畫布,根據步驟2設定的圖片壓縮取樣方式生成JPEG圖片,並將得到的圖片的數據信息保存於內存中;對步驟4得到的除第一塊以外其餘繪製成功的各塊畫布,根據步驟2設定的圖片壓縮取樣方式分別生成JPEG圖片,並將得到的圖片的數據信息去掉本圖片頭部後的信息後追加到前一幅圖片的尾部,在相鄰兩幅圖片的連接處將前一幅圖片的結束標誌FFD9修改為重入標記FFDn,η為O 7的循環;步驟6、修改步驟5最終得到的JPEG圖片的頭部信息,將該頭部信息中表示圖片寬和高的字節修改為全部塊畫布總的寬和高信息,最後將內存中的字節流生成超大圖片。
2.按照權利要求I所述的基於JPEG圖片拼接的超大圖片合成方法,其特徵在於,步驟3中,分塊生成每塊畫布Ci的過程中應保證除最後ー塊畫布外,其餘的每塊畫布中所包含的MCU的總個數必須為該畫布每一行MCU個數Ri的整數倍,並且每塊畫布中MCU的個數要小於內存地址最大值65535 ;同時,如果Η/氏的值為整數,則步驟3得到的各塊畫布的高Hi相等,並且為(Vmax*8)的整數倍。如果1^ = !1/氏為小數,則最後ー塊畫布的高為步驟I得到的排版後的版面與其餘各塊畫布的高Hi之和的差值。
全文摘要
本發明公開了一種基於JPEG圖片拼接的超大圖片合成方法,設置待排版面的寬和高,將待排版圖片採用矩形件排樣算法進行排版,同時記錄排版信息;設置JPEG圖片壓縮取樣方式;分塊生成每塊畫布,計算生成畫布的塊數k;依次循環將已排版照片繪製到每一塊畫布上;對得到的繪製成功的畫布,根據設定的圖片壓縮取樣方式生成JPEG圖片,並將圖片的數據信息保存於內存中;修改得到的JPEG圖片的頭部信息,將該頭部信息中表示圖片寬和高的字節修改為畫布總的寬和高,最後將內存中的字節流生成超大圖片。本發明方法內存使用量小且穩定,具有較低的時間複雜度與空間複雜度。
文檔編號G06T11/00GK102651138SQ20121010322
公開日2012年8月29日 申請日期2012年4月10日 優先權日2012年4月10日
發明者孫欽東, 張景鵬, 王倩 申請人:西安理工大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀