亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一個基于圖片縫合的紋理遷移算法的設(shè)計與實現(xiàn)

        2012-04-29 07:59:35喬岸紅
        電腦知識與技術(shù) 2012年20期
        關(guān)鍵詞:算法

        喬岸紅

        摘要:紋理綜合是根據(jù)現(xiàn)有的一塊小的輸入紋理,然后通過某種算法,使之生成與小紋理類似的一塊大紋理。一般要求兩塊紋理有較高的相似度,并且在視覺上沒有生硬的拼接的感覺。此外還要求算法能有比較快的速度,有較強的實用性。圖像縫合是一種快速的紋理綜合算法,現(xiàn)在已經(jīng)有一些成熟的算法,它是在把輸入紋理分塊之后,然后在目標圖像上根據(jù)相似度進行貼圖,在貼圖完成之后,再對塊與塊之間的邊界進行調(diào)整,使之實現(xiàn)自然過渡。該文研究的是在VC++6.0環(huán)境下通過面向?qū)ο缶幊逃脠D像縫合技術(shù)實現(xiàn)快速紋理綜合。自己設(shè)計并實現(xiàn)了實驗系統(tǒng),驗證了Alexei A. Efros和William T. Freeman的紋理縫合算法,取得比較好的實驗結(jié)果。

        關(guān)鍵詞:紋理綜合;圖像縫合;算法;平滑過渡

        中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2012)20-4974-03

        An the Design and Implementation of the Algorithm of Image Quilting for Texture Synthesis

        QIAO An-hong

        (College of Mathematics and Information Engineering,Jiaxing University, Jiaxing 314001,China)

        Abstract:According to a piece of the existing small input texture, use some sort of algorithm to generate a big texture similar as the small input texture. It generally requires that the two textures are with high texture similarity. The result texture should be without the visual sense of blunt splicing, and the algorithm can also achieve a relatively fast speed. Image quilting is a fast texture synthesis algorithm. There are a number of sophisticated algorithms about texture synthesis. The procedure is like that: dividing the input texture into the blocks, and then mapping in the target image according the similarity between the target image and the block. After completion of mapping, adjusts the boundary between the two conjoint blocks to achieve a natural transition. This study was conducted in VC + +6.0 environments using the object-oriented programming to test Alexei A. Efros and William T. Freemanalgorithm“Image Quilting for Texture Synthesis and Transfer”. The experimental results show a relatively good effect.

        Key words: database connection; pop-up menu; dynamic data window; information feedback

        紋理綜合是為了解決紋理映射中存在的接縫走樣等問題而提出的,目前紋理合成方法可分為兩類:

        一類為過程紋理合成(PTS)。過程紋理合成通過對物理生成過程的仿真直接在曲面上生成紋理,如毛發(fā)、云霧、木紋等,從而避免了紋理映射帶來的失真。這種方法可以獲得非常逼真的紋理,但對每一種新的紋理,卻需要調(diào)整參數(shù)反復(fù)測試,非常不便,有的甚至無法得到有效的參數(shù)。另一類為基于樣圖的紋理合成(texture synthesis from samples,TSFS)。TSFS技術(shù)是近幾年迅速發(fā)展起來的一種新的紋理拼接技術(shù),它基于給定的小區(qū)域紋理樣本,按照表面的幾何形狀,拼合生成整個曲面的紋理,它在視覺上是相似而連續(xù)的。TSFS技術(shù)可以克服傳統(tǒng)紋理映射方法的缺點,又避免了過程紋理合成調(diào)整參數(shù)的繁瑣,因而受到越來越多研究人員的關(guān)注,成為計算機圖形學、計算機視覺和圖像處理領(lǐng)域的研究熱點之一。利用TSFS技術(shù)還可以進行紋理填充(如修補破損的圖片,重現(xiàn)原有圖片效果),紋理傳輸,擴展到時域則可以用一短段視頻圖像,生成任意長度的非重復(fù)的視頻動畫等。

        紋理技術(shù)作為數(shù)字圖像處理的一個重要分支,不斷與其它學科結(jié)合,發(fā)展速度日新月異。在圖像編輯、數(shù)據(jù)壓縮、網(wǎng)絡(luò)數(shù)據(jù)的快速傳輸、大規(guī)模場景的生成以及真實感和非真實感繪制、檔案的數(shù)字化保存、視頻的索引和檢索、物體3 D重建、軍事偵察和公安取證、數(shù)碼相機的超分辨處理等方面具有廣泛的應(yīng)用前景。具體表現(xiàn)如下:

        1)基于顏色和紋理綜合特征的車牌定位新方法。首先進行色彩分割,然后進行區(qū)域生成,最后從中分割出車牌。實驗結(jié)果表明算法效果好、速度高,而且適用于對有噪聲及復(fù)雜背景的車牌圖像進行分割。

        2)基于內(nèi)容的圖像檢索。其主要是利用圖像的特征,如:顏色直方圖、紋理、形狀等來進行檢索,這種方式能夠提高檢索的效率與準確率。利用圖像的顏色信息與利用快速傅立葉變換來提取紋理特征相結(jié)合的方法來進行圖像檢索,該方法一方面可以反映圖像的全局特征,另一方面又反映了圖像的局部特征,且具有對圖像檢索的旋轉(zhuǎn)不變性。

        1紋理常見算法

        1.1紋理算法的發(fā)展

        Efros等在1999年首先提出了基于鄰域匹配的逐點合成方法之后,Wei等和Ashikhmn對該方法進行了改進。雖然逐點合成的方式對于隨機性較強的紋理達到了滿意的合成效果,但它卻難以有效合成結(jié)構(gòu)性較強的紋理,合成速度也比較慢。

        Xu等在2000年提出了隨機塊拼接的合成方法,即按塊進行紋理合成,很好地提高了速度。Efros等在2001年提出了一種紋理的逐塊合成方法,根據(jù)待合成塊的鄰域區(qū)搜索匹配塊,采用最小誤差路徑法來實現(xiàn)各塊的拼接。

        Liang等也提出了類似的方法,只不過采用了“羽化”的方式來處理塊與塊問的重疊區(qū)。相比于逐點合成法,逐塊合成法不但提高了速度,而且改善了對結(jié)構(gòu)性較強紋理的合成效果。

        1.2紋理常見算法

        近幾年,基于樣圖的紋理合成方法得到了迅速發(fā)展,它基于給定的小區(qū)域紋理樣本,按照表面的幾何形狀,生成大范圍的紋理,它在視覺上是相似而連續(xù)的?;跇訄D的紋理合成技術(shù)避免了過程紋理合成調(diào)整參數(shù)的繁瑣,而且速度更快,適用的范圍更廣,已成為計算機圖形學、計算機視覺和圖像處理領(lǐng)域的研究熱點之一,其算法也層出不窮。

        1)基于特征提取的紋理合成算法,該算法將紋理樣圖進行分層處理,一層是紋理上具有明顯邊界和完整形狀的特征對象,一層是除去特征對象的背景。首先將紋理上的特征對象提取出來,然后用剩下的紋理合成背景,最后將提取的對象按照樣本中的分布規(guī)律撒播在背景上來生成紋理。實驗表明,這種算法能夠較好地保證樣本紋理中特征對象的完整性,合成效果比較理想。

        2)基于不規(guī)則塊的紋理合成方法。為了很好地保持紋理的邊界結(jié)構(gòu)特征,提出了一種利用人眼的視覺特性,采用不規(guī)則塊、隨機覆蓋法和曲線最優(yōu)匹配的紋理合成新方法。此方法分兩個步驟:首先根據(jù)人眼的視覺特性,采用智能選擇工具從樣本紋理中抽取出具有明顯邊界特征的不規(guī)則塊,然后采用隨機覆蓋法和曲線最優(yōu)匹配法來決定如何把不規(guī)則塊拷貝到目標紋理中和已有的合成方法相比,新方法能更好地保持紋理的邊界結(jié)構(gòu)特征。實驗表明該方法可以快速高效地合成高質(zhì)量的紋元式紋理。

        2 BMP圖片及24位真彩色

        2.1 BMP圖片

        BMP是一種與硬件設(shè)備無關(guān)的圖像文件格式,使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮。因此,BMP文件所占用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數(shù)據(jù)時,圖像的掃描方式是按從左到右、從下到上的順序。

        2.2 24位真彩色

        一個顏色可以拆分成紅綠藍三元色,24真彩色就是依據(jù)這個劃分,每種顏色用一個字節(jié)來表示.3*8=24 (16777216種顏色)。所以一個象素需要3個字節(jié)來表示,存儲數(shù)據(jù)量應(yīng)該是256色圖片的3倍。即1406.25KB=1.3733MB左右?,F(xiàn)在大多數(shù)的數(shù)字顯示技術(shù)(如液晶顯示屏)均采用24位色彩。在傳輸數(shù)據(jù)時是3個8位為一個紅,綠,藍組成的點傳輸?shù)?然后每個點根據(jù)這些數(shù)字來產(chǎn)生不同的電壓,由此產(chǎn)生豐富多彩的圖像。

        3算法實現(xiàn)工具

        3.1 Visual c++6.0

        Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。

        Visual C++6.0不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development envi ronment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。

        3.2 C++語言

        C++的設(shè)計目標,就是要讓C++既具有適合于系統(tǒng)程序設(shè)計的C語言所具有的可適應(yīng)性和高效性,又能在其程序組織結(jié)構(gòu)方面具有像Simula那樣的語言設(shè)施(Simula所支持的這種程序組織結(jié)構(gòu)通常被稱為面向?qū)ο蟪绦蛟O(shè)計風格)。在設(shè)計的時候,還做了很大的努力,使得引借自Simula的高層次的程序設(shè)計技術(shù)能夠應(yīng)用于系統(tǒng)程序設(shè)計之中。這即是說,C++所提供的抽象機制能夠被應(yīng)用于那些對效率和可適應(yīng)性具有極高要求的程序設(shè)計任務(wù)之中。

        C++的設(shè)計原則,C++的設(shè)計規(guī)則被分為基本規(guī)則、基于設(shè)計的規(guī)則、語言的技術(shù)性規(guī)則以及基于低層次程序設(shè)計的規(guī)則四個方面。

        4實驗與實現(xiàn)

        4.1算法驗證

        此次實驗驗證的是Alexei A. Efros和William T. Freeman圖像縫合和遷移算法。此算法的特點是高效、快速、有較強的實用性。

        4.2實驗步驟

        1)導(dǎo)入小塊的紋理圖像(24位真彩色、bmp格式圖片、90*90(為了方便處理選取30的倍數(shù)))。

        2)將此紋理圖片裁成等大小的若干塊小紋理。

        3)隨機選擇一塊紋理,作為目標大紋理的起始塊。

        4)選取和第一塊邊緣相似度最高的紋理塊,進行部分重疊貼圖。

        5)如此循環(huán)產(chǎn)生目標紋理。

        4.3核心代碼

        1)導(dǎo)入及顯示圖片:

        HANDLE CDib::LoadDIB(LPCTSTR lpFileName)//導(dǎo)入紋理圖片

        {

        HANDLE hDIB; //圖像句柄

        HANDLE hFile; //文件句柄

        if((hFile = CreateFile(lpFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NOR MAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL))!= INVALID_HANDLE_VALUE)

        {

        hDIB = ReadDIBFile(hFile); //讀取DIB文件

        if(!hDIB)

        AfxMessageBox("Read File Error"); //出錯處理

        CloseHandle(hFile); //關(guān)閉文件句柄

        return hDIB; //返回包含文件信息頭和數(shù)據(jù)區(qū)的圖像句柄

        }

        return NULL;//返回空值

        }

        2)生成目標紋理:

        //hSample為紋理樣本,height,width為合成圖像的高和寬

        HANDLE CDib::ImgQuilting(HANDLE hSample,int height,int width) //樣本紋理的高和寬

        //由于下文將樣本切分尺寸設(shè)定為30*30。所以為了方便切分,樣本紋理尺寸最好取30的整數(shù)倍。

        {

        if(!hSample || height <0 || width <0) //出錯處理

        return NULL; //返回空值

        //樣本切分的尺度設(shè)定為W和H

        const int W = 30;//寬:30px

        const int H = 30;//高:30px

        HANDLE hDst; //保存結(jié)果的圖像句柄

        LPBITMAPINFOHEADER lpbi; //信息頭指針

        LPBYTE lpS = this→FindDIBBits(hSample);//定義紋理樣本數(shù)據(jù)段起始位置

        int bytesPerLineS = this→BytePerLine(hSample);//紋理樣本每行像素占用字節(jié)數(shù)

        int w,h; //樣本圖像的寬和高

        lpbi = (LPBITMAPINFOHEADER)GlobalLock(hSample);//鎖定(lpbi指向文件信息頭的內(nèi)存中的地址)w = lpbi→biWidth;//給寬度賦值h = lpbi→biHeight; //給高度賦值

        GlobalUnlock(hSample);//接觸紋理樣本鎖定GlobalUnlock(hDst);//解除圖像鎖定return hDst;//返回圖像句柄

        5結(jié)束語

        本次實驗以bmp圖像為例實現(xiàn)紋理縫合。通過導(dǎo)入不同的紋理圖片,產(chǎn)生了和符合預(yù)期的目標紋理。充分驗證了Alexei A. Efros和William T. Freeman圖像縫合和遷移算法快速、高效和實用性。

        參考文獻:

        [1]侯捷.深入淺出MFC[M].2版.華中科技大學出版社,2001.

        [2]周長發(fā).精通VC++圖像處理編程[M].2版.北京:電子工業(yè)出版社,2004.10.01

        [3] Andrew Nealen,and Marc Alexa. Hybrid Texture Synthesis. Eurographics Symposium on Rendering 2003.

        [4] Algorithms for solid noise synthesis. Computer Graphics (SIGGRAPH 89 Proc.), 1989,23(3):263-270.

        [5] William T. Freeman. Image Quilting for Texture Synthesis and Transfer. Proceedings SIGGRAPH 01, In Computer Graphics, Annual Con ference Series,2001.

        猜你喜歡
        算法
        基于MapReduce的改進Eclat算法
        Travellng thg World Full—time for Rree
        進位加法的兩種算法
        基于CC2530的改進TPSN算法
        基于BCH和HOG的Mean Shift跟蹤算法
        算法初步兩點追蹤
        基于增強隨機搜索的OECI-ELM算法
        一種改進的整周模糊度去相關(guān)算法
        一種抗CPS控制層欺騙攻擊的算法
        Wiener核的快速提取算法
        日本一区二区三区在线观看免费| 亚洲av无码不卡久久| 国内大量揄拍人妻在线视频| 国产精品久久这里只有精品 | 国产av熟女一区二区三区密桃| 国产对白国语对白| 欧美v亚洲v日韩v最新在线| 亚洲精品成人av一区二区| 美利坚亚洲天堂日韩精品| 高黄暴h日本在线观看| 日日澡夜夜澡人人高潮| 亚洲国产成人精品无码区在线秒播| 国产成人综合亚洲精品| 国产综合久久久久影院| 亚洲中字永久一区二区三区| 亚洲国产av无码精品无广告| 国产成人无码一区二区三区在线| 亚洲欧美日韩精品中文乱码| 国产视频免费一区二区| 亚洲国产精品日本无码网站 | 亚洲自偷自拍另类图片小说| 亚洲一区精品一区在线观看| 亚洲av毛片在线免费观看 | 色婷婷丁香综合激情| 男女打扑克视频在线看| 中文字幕偷拍亚洲九色| 亚洲免费看三级黄网站| av免费在线免费观看| 亚洲成av人片在线观看www| 国产成人久久精品区一区二区| 精品在线视频免费在线观看视频| 日本av在线一区二区| 国产精一品亚洲二区在线播放| 无码Av在线一区二区三区| 国产精品亚洲二区在线| 亚洲av国产av综合av卡| 国产精品 视频一区 二区三区| 色综合久久五月天久久久| 免费亚洲老熟熟女熟女熟女| 亚洲免费网站观看视频| 亚洲 无码 制服 丝袜 自拍|