• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      矢量填充和插值算法的圖像放大

      2016-07-02 01:53:41昆明理工大學信息工程與自動化學院昆明650500
      計算機與數(shù)字工程 2016年6期

      (昆明理工大學信息工程與自動化學院 昆明 650500)

      矢量填充和插值算法的圖像放大

      (昆明理工大學信息工程與自動化學院昆明650500)

      摘要論文針對圖像放大問題,建立了矢量化填充放大模型。并針對矢量化填充放大模型不能處理復雜圖像的缺點,使用并比較了最鄰近插值法、雙線性插值法、雙三次插值法三種不同的算法。并綜合以上四個模型,得到以下結論:矢量化填充放大模型適用于較簡單的可矢量化的圖像,可無限放大,且不影響其成像。基于插值算法的三個模型中,最鄰近法模型算法簡單、計算量小、處理速度快,但處理后的圖像會出現(xiàn)塊效應,造成圖像模糊。雙線性插值法模型克服了最鄰近法處理圖像出現(xiàn)塊效應的問題,其計算相比雙三次法簡單,但邊緣細微結構會受到影響,產生輪廓模糊的現(xiàn)象。雙三次插值法模型解決了以上兩種算法的缺點,計算精度高,帶有邊緣增強的效果,能夠較好保持圖像的細微結構,但計算量較大。

      關鍵詞矢量填充; 最鄰近插值法; 雙線性插值法; 雙三次插值法

      Class NumberTP309.7

      1引言

      位圖在放大時,圖像質量常會有所下降,如容易產生較為明顯的模糊或馬賽克等現(xiàn)象。現(xiàn)在待解決的是如何建立合理的數(shù)學模型,來設計一個放大位圖的算法,使圖像在被放大后仍能盡量保持較好的圖像質量。本文為大家呈現(xiàn)幾種解決該問題的方法[1]。

      同時針對位圖放大時容易產生較為明顯的模糊或馬賽克等現(xiàn)象。通過矢量圖的特性可知,作為矢量圖,在放大的時候能保持一定圖像比例。但是此類方法產生的矢量圖大多是一些構圖簡單、可矢量化的、顏色較為單一的位圖。目前,為得到復雜圖像的放大清晰位圖,多采用插值算法對位圖進行處理。常用的插值算法有最鄰近插值法、雙線性插值法、雙三次插值法等,不同插值算法對圖像的處理效果不一樣。本文采用最鄰近插值法、雙線性插值法、雙三次插值法三種算法對放大圖像進行放大、比較[2]。

      2矢量化填充放大模型

      對原圖進行位圖矢量化之前直接對整個圖像的特征點進行擬合的求解方法,由于數(shù)據(jù)過少,會造成函數(shù)的波動,使得圖像不夠圓滑,因此采用分塊方式對圖像進行分塊,具體求解過程如下:

      1) 將圖像分為四個部分

      采用分塊方式將二值化后的圖像分為四塊區(qū)域,劃分區(qū)域如圖1所示。

      一二三四

      圖1劃分區(qū)域圖

      針對區(qū)域劃分,利用Matlab求解的程序如下:

      [mm,nn]=size(A)

      B1=A(1:mm/2,1:nn/2);

      B2=A(1:mm/2,nn/2+1:nn);

      B3=A(mm/2+1:mm,1:nn/2);

      B4=A(mm/2+1:mm,nn/2+1:nn);

      2) 針對區(qū)域一

      對圖像邊緣輪廓的提取有許多的研究和方法,常用的圖像的邊緣提取的梯度算子有Roberts算子、Sobel算子、Canny算子、Prewitt算子和Laplace算子,本文最終采用Canny算子[3~4]。

      對第一部分圖像進行預處理以后,利用canny算子對其進行邊緣檢測,檢測結果如圖2所示。

      圖2 提取圖像的邊緣

      特征點的提取是位圖矢量化過程中重要的一步,該步驟主要是從檢測出的邊緣中提取出表示圖像輪廓關鍵特征的點[5]。本模型采用的Harris算法是穩(wěn)定性和準確度都較高的基于灰度的角點檢測算法。

      圖3 特征點提取結果

      曲線擬合是指用連續(xù)曲線近似地刻畫或比擬平面上離散點組所表示的坐標構造之間的函數(shù)關系[6~7]。

      Matlab求解程序[8]如下:

      if strcmp(flag,'paint')

      xx=min(x):0.1:max(x);

      yy=polyval(p,xx);

      plot(xx,-yy,'g');

      hold on

      end

      此時對擬合函數(shù)進行歸類,并標記取值范圍,Matlab求解程序如下:

      [m,n]=size(ans_max);

      disp('擬合后函數(shù)');

      for i=1:n

      fprintf ('x取值范圍[%d,%d] ',

      ans_min(i),ans_max(i))

      fprintf ('第%d段:y= ',i);

      disp(ploy(i));

      end

      對其他三個區(qū)域采用相同的處理方法,將得到的四塊圖像照分割次序還原,得到原圖曲線。

      3矢量圖放大填充

      1) 模型背景知識

      矢量圖根據(jù)幾何特性來繪制圖像,矢量可以是一個點或一條線,矢量圖只能靠軟件生成,文件占用內在空間較小,因為這種類型的圖像文件包含獨立的分離圖像,可以自由無限制地重新組合。它的特點是放大后圖像不會失真,和分辨率無關,文件占用空間較小,適用于圖像設計、文字設計和一些標志設計、版式設計等。

      2) 模型的建立與求解

      設此時擬合完畢后的函數(shù)自變量為X,因變量為Y。為了放大矢量圖,可先對定義域X的值進行擴充,采用式(1):

      X′=[Xmin*K,Xmax*K]

      (1)

      為了得到特定的X值M,需將擴充后的定義域X′進行式(2)計算:

      M=X′/K

      (2)

      得到特定的X值后,可將它代入擬合完畢后的函數(shù)f(x),計算出特定的Y值,求出值域。此時便可對值域的值進行擴充,采用式(3):

      Y′=[Ymin*K,Ymax*K]

      (3)

      最后將擴充后的定義域和值域進行曲線擬合,得到的函數(shù)f′(x)便為放大后的矢量圖。

      由于有灰度圖,因此為了簡化計算,可以不對矢量圖進行填充。

      對于此問題,采用Matlab求解:

      Magnification=8;%擴大倍數(shù)

      for i=1:n

      fprintf ('x取值范圍[%d,%d] ',

      ans_min(i)*Magnification,

      ans_max(i)*Magnification)

      fprintf ('第%d段:temp= ',i);

      disp(ploy(i));

      fprintf ('y=%d*temp ',

      Magnification);

      End

      4最鄰近插值算法模型

      最鄰近插值是最簡單的插值算法[9],也叫零階插值,最鄰近插值的核心思想是首先將(x,y)經空間變換映射為(x′,y′),如果(x′,y′)是非整數(shù)坐標,則尋找(x′,y′)的最近鄰,并將最近鄰的灰度值賦給校正圖像(x,y)處的像素。

      該算法原理簡單,即每一個待插值點的像素值取在原圖像中相應點周圍四個相鄰點中歐氏距離最短的一個。該算法計算量小,但其缺點是可能會有塊效應,造成圖像模糊,放大后圖像質量不高。最鄰近插值公式如式(4)所示:

      f(x+u,y+v)=f(x,y)

      (4)

      其中f(x,y)表示原圖像在(x,y)位置處像素點的像素值;u,v均為[0,1)區(qū)間的浮點數(shù),分別表示待插值點與最鄰近像素點在水平和豎直方向的距離,x和y的取值范圍大于等于0。

      簡言之,最鄰近插值輸出的像素灰度值就等于距離它映射到的位置最近的輸入像素的灰度值。該算法簡單,在許多情況下都能得到令人滿意的結果,但是當圖像中存在像素之間灰度級有變化的細微結構時,該算法會在圖像中產生人為加工的痕跡。

      在Matlab中編程實現(xiàn)用最鄰近插值算法實現(xiàn)圖像的放大,文中選擇大小為128*128的圖像進行實驗。

      本文中隨機選擇圖4做為目標圖像。

      圖4 目標圖像

      圖5 原始圖像直方圖

      采用最鄰近插值法對目標圖像放大處理,效果如圖6所示。

      圖6 最鄰近插值法放大圖像直方圖

      對比直方圖可看出,用最鄰近插值法放大的圖像在給定Level值下像素的數(shù)量有明顯的增加,即實現(xiàn)了圖像的放大。實現(xiàn)代碼如下:

      A = imread('./test1.jpg');%讀取圖像信息

      imshow(A); %顯示原圖

      title('原圖128*128');

      Row = size(A,1); Col = size(A,2);%圖像行數(shù)和列數(shù)

      nn=8;%放大倍數(shù)m = round(nn*Row);%求出變換后的坐標的最大值

      n = round(nn*Col);

      B = zeros(m,n,3);%定義變換后的圖像

      for i = 1 : m

      for j = 1 : n

      x = round(i/nn); y = round(j/nn);

      %最小臨近法對圖像進行插值

      if x==0 x = 1; end

      if y==0 y = 1; end

      if x>Row x = Row; end

      if y>Col y = Col;end

      B(i,j,:) = A(x,y,:);

      end

      end

      B = uint8(B);%將矩陣轉換成8位無符號整數(shù)

      figure; imshow(B);

      title('最鄰近插值法放大8倍1024*1024');

      5雙線性插值算法模型

      雙線性插值[10],又稱為雙線性內插,在數(shù)學上,雙線性插值是有兩個變量的插值函數(shù)的線性插值擴展,其主要思想是在水平和豎直方向上分別進行一次線性插值。

      其基本原理為:對于一個目的像素,通過坐標的反向設置變換得到浮點的坐標(x+u,y+v),其中x和y均為大于等于零的整數(shù),u和v為[0,1)區(qū)間的浮點數(shù),則這個像素的值可由原圖像中坐標為(x,y),(x+1,y),(x,y+1),(x+1,y+1)所對應的相鄰四個像素的值決定,即如式(5)所示:

      f(x+u,y+v)=(1-u)(1-v)f(x,y)

      +(1-u)vf(x,y+1)

      +u(1-u)f(x+1,y)

      +uvf(x+1,y+1)

      (5)

      其中f(x,y)表示源圖像(x,y)處的像素值。

      圖7 雙線性內插值原理

      采用雙線性內插值法對目標圖像進行放大處理,效果如圖8所示。

      與最鄰近插值算法相比,雙線性插值縮放后圖像質量更高,不會出現(xiàn)像素值不連續(xù)的情況。但是雙線性插值算法計算量比最鄰近插值大,且有低通濾波器的性質,所以會使高頻分量受損,導致圖片邊緣發(fā)生細微結構變化。

      實現(xiàn)代碼如下:

      C=imresize(A,8,'bilinear'); %雙線性插值

      figure; imshow(C);

      title('雙線性內插值法放大8倍1024*1024');

      圖8 雙線性內插值法放大圖像直方圖

      6雙三次插值算法模型

      雙三次插值又稱立方卷積插值,雙三次插值算法根據(jù)目的像素點周圍的16個像素點的灰度值作三次線性插值,此算法不僅考慮到像素點周圍4個直接相鄰灰度影響,而且還考慮到各鄰點間灰度值變化率的影響,圖像經過三次運算可以得到高分辨率圖像放大的結果。該算法需要選取插值基函數(shù)來擬合數(shù)據(jù),其最常用的插值基函數(shù)如圖9所示。

      圖9 雙三次內插基函數(shù)

      其數(shù)學表達式如下:

      (6)

      雙三次插值的一般公式由二元雙三次插值公式推導而來,其共有(3+1)2=16個系數(shù),其公式表示如式(7)所示:

      z=a1+a2x+a3y+a4x2+a5xy+a6y2+a7x3

      +a8x2y+a9xy2+a10y3+a11x3y+a12xy3

      +a13x2y2+a14x3y2+a15x2y3+a16x3y3

      (7)

      該方法考慮一個浮點坐標(x+u,y+v)周圍的16個鄰點,目標像素值f(x+u,y+v)可由如下插值公式得到:

      f(x+u,y+v)=[A]*[B]*[C]

      (8)

      [A]=[S(u+1)S(u+0)S(u-1)S(u-2)]

      (9)

      (10)

      ------------------------------

      (11)

      圖10 雙三次插值法放大圖像直方圖

      雙三次插值能得到高分辨率圖像放大的結果,但比最鄰近插值和雙線性插值更加復雜,這樣也就同時導致了計算量的劇增。

      實現(xiàn)代碼如下:

      D=imresize(A,8,'bicubic');

      %雙三次插值放大8倍

      figure;

      imshow(D);

      title('三次卷積法放大8倍1024*1024');

      7結語

      本文針對清晰化放大圖像,建立了四個模型。第一個模型基于圖像矢量化,對矢量圖進行填充放大。該算法雖然只能處理簡單的可矢量化的圖像,但是可放大倍數(shù)非??捎^,并且經該算法放大的圖像的清晰度是所有模型中最優(yōu)的。所以,該模型比較適用于對相對簡單的圖像的放大處理。

      最鄰近插值算法模型、雙線性插值算法模型、雙三次插值算法模型都是采用對位圖直接插值的算法,其基本原理一樣,都是一個圖像數(shù)據(jù)再生的過程——它由原始具有較低分辨率的圖像數(shù)據(jù)再生出具有更高分辨率的圖像數(shù)據(jù)。但獲得插值點像素的具體計算方法存在較大差異,最鄰近插值算法取的值是距離原點映射到的位置最近的輸入像素的灰度值;雙線性插值算法的思想是在水平和豎直方向上分別進行一次線性插值;雙三次插值算法根據(jù)目的像素點周圍的十六個像素點的灰度值作三次線性插值。

      三個模型都能對各種位圖進行放大處理,但放大效果不一樣,其中,雙三次插值算法對圖像的處理效果最好,雙線性插值算法次之,最鄰近插值算法的處理效果最差。

      綜上,本文中四個模型各有其優(yōu)缺點,實際中根據(jù)具體情況采用適合的模型。

      參 考 文 獻

      [1] 姜啟源,謝金星,葉俊.數(shù)學建模[M].北京:高等教育出版社,2011:216-253.

      JIANG Qiyuan, XIE Jinxing, YE Jun. Mathematical modeling[M]. Beijing: Higher Education Press,2011:216-253.

      [2] 張海燕,吳方.幾種插值算法的比較研究[J].計算機技術與發(fā)展,2012,22(2):234-237.

      ZHANG Haiyan, WU Fang. Coparative Research of Interpolation Algorithms[J]. Computer Technolocy And Development,2012,22(2):234-237.

      [3] Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins.數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2005:167-190.

      Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins. digital image processing[M]. Beijing: Electronic Industry Press,2005:167-190.

      [4] [美]赫恩.計算機圖像學[M].第三版.北京:電子工業(yè)出版社,2010:58-97.

      Hearn. Computer image[M]. Third edition. Beijing: Electronic Industry Press,2010:58-97.

      [5] 劉玉蘭,葛慶平.一種間接提取輪廓特征點的算法[J].計算機工程與應用,2004,40(10):51-52.

      LIU Yulan, GE Qingping. An Algorithm of Selecting Feature Points Indirectly in an Outline[J]. Computer Engineering and Applications,2004,40(10):51-52.

      [6] 胡魁賢,嚴宏志,朱自冰,等.截面輪廓曲線分段約束擬合[J].計算機工程與科學,2009,31(7):53-56.

      HU Kuixian, YAN Hongzhi, ZHU Zibing, et al. Fitting Planar Curves with Restraint Method[J]. Computer Engineering and Science,2009,31(7):53-56.

      [7] 劉玉蘭,葛慶平.閉合數(shù)字曲線的多項式遞歸擬合[J].計算機工程與應用,2005,41(7):51-53.

      LIU Yulan, GE Qingping. Recursive Fitting of Closing Digital Curve Using Polynomials[J]. Computer Engineering and Applications,2005,41(7):51-53.

      [8] 仵峰.用Matlab進行圖形矢量化[J].中國農村水利水電,2007,(8):31-33.

      WU Feng. The Vector quantization By Matlab[J]. China Rural Water and Hydropower,2007,(8):31-33.

      [9] 梁小利,孫洪淋.基于線性插值算法的圖像縮放及實現(xiàn)[J].長沙通信職業(yè)技術學院學報,2008,7(2):49-51.

      LIANG Xiaoli, SUN Honglin. Image zooming based on linear interpolation algorithm and its realization[J]. Journal of Changsha Telecommunications and Technology Vocational College,2008,7(2):49-51.

      [10] 馮慧君,陶素娟,李隆.基于雙線性插值算法的圖像放縮技術與實現(xiàn)[J].計算機應用與軟件,2004,21(7):117-119.

      FENG Huijun, TAO Sujuan, LI Rong. Double Linear Inserting Algorithm Based Image Zooming And Its Realization With VC++[J]. Computer Applications and Software,2004,21(7):117-119.

      Vector Filling and Interpolation Algorithms of Image Magnification

      WU JunbinWU ShengWU Xingjiao

      (School of Information Engineering and Automation, Kunming University of Science and Technology, Kunming650500)

      AbstractIn view of the problem of image magnification, this paper establishes the vector filling amplification model. And fill the zoom model can’t deal with complex vector quantization for image shortcomings, using the adjacent interpolation method, bilinear interpolation method, double three interpolation method of three different algorithms are compared. And integrated the above four models, the following conclusion is gotten: fill amplification vector quantization model suitable for simple images, vector quantization can be unlimited amplifier, and does not affecting the imaging. Three models based on interpolation algorithm, the neighboring method model algorithm is simple, small amount of calculation, fast processing speed, but after processing the image will appear block effect, cause blurred images. Bilinear interpolation model overcame the neighboring method processing image block effect problem, compared the calculation method of double three simple, but the edge structure will be affected, produce the outline of the fuzzy phenomenon. Double three interpolation model to solve the disadvantages of the above two kinds of algorithm, the calculation accuracy is high, with the effect of edge enhancement, can better keep the image structure, but the large amount of calculation.

      Key Wordsvector filling, adjacent interpolation method, bilinear interpolation method, double three interpolation method

      收稿日期:2015年12月16日,修回日期:2016年1月24日

      作者簡介:吳俊斌,男,研究方向:算法設計、程序設計。吳晟,男,教授,碩士生導師,研究方向:信息安全,算法研究等。吳興蛟,男,碩士研究生,研究方向:軟件工程、算法設計、程序設計。

      中圖分類號TP309.7

      DOI:10.3969/j.issn.1672-9722.2016.06.034

      吳俊斌吳晟吳興蛟

      乐昌市| 阿克| 莆田市| 广元市| 新干县| 扬州市| 同仁县| 徐闻县| 保德县| 大关县| 太和县| 房山区| 小金县| 顺昌县| 伊通| 垦利县| 苍梧县| 新和县| 乌审旗| 柘荣县| 广汉市| 康马县| 香港 | 阿克陶县| 凤冈县| 右玉县| 天台县| 南澳县| 仁寿县| 平安县| 乃东县| 察哈| 永寿县| 噶尔县| 申扎县| 仪陇县| 汉源县| 夹江县| 阳西县| 东山县| 缙云县|