• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    OpenCV:圖像縮放操作resize,pryUp,pryDown

    緒:

    圖像的縮放操作是圖像處置中根基的處置體例;

    OpenCV中對圖像進行縮放最簡單的方式是挪用resize函數;

    別的,還有采用圖像金字塔來進行圖像縮放的;

    pryUp和pryDown函數;

    本文本家兒要介紹:

    resize,pryUp,pryDown函數及其圖像縮放的應用;

    東西/原料

    • OpenCV 2410

    方式/步調

    1. 1

      resize()函數:

      可以將原圖像切確的轉化為指心猿意馬尺寸的方針圖像;

      格局:

      void resize(InputArray src,

      OutputArray dst,

      Size dsize,

      double fx=0,

      double fy=0,

      int interpolation=INTER_LINEAR );

      參數:

      dsize:輸出圖像的巨細;

      當dsize不為0時,即指心猿意馬的圖像縮放巨細;

      當dsize為0時,縮放巨細為dsize=Size(round(fx*src.cols),round(fy*src.rows))

      此中,fx,fy為縮放比例;

      【注】:

      dsize和fx/fy不克不及同時為0;

    2. 2

      resize放年夜圖像:

      若要放年夜圖像,保舉利用CV_INTER_LINEAR雙線性插值;

      以王者榮耀logo為例,巨細為482*355,進行放年夜

      示例如下:

      int main()

      {

             Mat img = imread("0.jpg");

             imshow("原始圖", img);

       

             Mat dst = Mat::zeros(428, 512, CV_8UC3); //我要轉化為512*512巨細的

             resize(img, dst, dst.size());

       

             imshow("尺寸調整之后", dst);

             waitKey(0);

             return 0;

      }

    3. 3

      resize縮小圖像:

      要縮小圖像,一般保舉利用CV_INTER_AREA插值;

      法式如下:

      int main()

      {

             Mat img = imread("0.jpg");

             imshow("原始圖", img);

       

             Mat dst;

             resize(img, dst, Size(),0.5,0.5);//我長寬都變為本來的0.5倍

       

             imshow("尺寸調整之后", dst);

             waitKey(0);

             waitKey(0);

             return 0;

      }

    4. 4

      圖像金字塔:

      圖像金字塔是用來進行圖像縮放的,功能和resize一樣;

      為什么還需要進修它;

      因為其在卷積神經收集中會碰到這個名詞;

      且搞圖像的都得學它;

      什么是金字塔?

      下圖所示,

      我們將一層層的圖像比方為金字塔,層級越高,則圖像尺寸越小,分辯率越低;

       

      兩種類型的金字塔:

      高斯金字塔:用于下采樣,本家兒要的圖像金字塔;

      拉普拉斯金字塔:用于重建圖像,也就是展望殘差,對圖像最年夜水平的還原;

      好比一副小圖像重建為一幅年夜圖像;

       

      上采樣和下采樣:

      上采樣:就是圖像放年夜,利用pryUp函數;

      下采樣:就是圖像縮小,利用pryDown函數;

    5. 5

      pryUp上采樣:圖像放年夜

      格局:

      void pyrUp(InputArray src,

       OutputArray dst,

      const Size& dstsize=Size());

      上采樣步調:

      ①將圖像在每個偏向放年夜為本來的兩倍,新增的行和列用0填充;

      ②利用卷積核與放年夜的圖像卷積,獲得新增像素的近似值;

      法式如下:

      int main()

      {

             Mat img = imread("0.jpg");

             imshow("原始圖", img);

             Mat dst;

             pyrUp(img, dst, Size(img.cols*2, img.rows*2)); //放年夜一倍

             imshow("尺寸放年夜之后", dst);

             waitKey(0);

             return 0;

      }

    6. 6

      pryDown下采樣:圖像縮小

      格局:

      void pyrDown(InputArray src,

      OutputArray dst,

      const Size& dstsize=Size()); 

       

      下采樣步調:

      ①將圖像進行高斯內核卷積

      ②將所有偶數行和列去除

      【注】:

      上、下采樣都存在一個嚴重的問題,那就是圖像變恍惚了,因為縮放的過程中發生了信息丟掉的問題。要解決這個問題,就得看拉普拉斯金字塔了。

      是以,若是縮放仍是采用resize函數;

    注重事項

    • resize()函數: 可以將原圖像切確的轉化為指心猿意馬尺寸的方針圖像;
    • pryDown下采樣:圖像縮小,圖像變恍惚;
    • pryUp上采樣:圖像放年夜,圖像變恍惚
    • 發表于 2018-05-13 00:00
    • 閱讀 ( 1023 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆