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

    OpenCV:resize函數 VS vector:resize函數

    緒:

    圖像處置中,改變圖像巨細的操作是經常碰到的;

    OpenCV庫resize函數專門用來改變圖像巨細的操作函數;

    而C++中,vector::resize改變容器巨細;

    本文本家兒要介紹這兩者resize用法;

    東西/原料

    • OpenCV 2410

    方式/步調

    1. 1

      格局:

      void resize(InputArray src, //輸入

      OutputArray dst, //輸出

      Size dsize, //指心猿意馬圖像巨細

      double fx=0,

      double fy=0,

      int interpolation=INTER_LINEAR )

    2. 2

      參數:

      dsize:指心猿意馬圖像尺寸巨細,

      若是為0,則

      【注】:

      dsize和fx、fy不克不及同時為0。

      fx、fy是沿x軸和y軸的縮放系數;

      當默認取0時,計較公式如下:

      interpolation:插值體例,

      有以下幾種:

      INTER_NEAREST - 比來鄰插值

      INTER_LINEAR - 線性插值(默認)

      INTER_AREA - 區域插值

      INTER_CUBIC - 三次樣條插值

      INTER_LANCZOS4 - Lanczos插值

    3. 3

      應用實例

      #include <opencv2\opencv.hpp>

      #include <opencv2\highgui\highgui.hpp>

      #include <opencv2\features2d\features2d.hpp>

      #include <opencv2\core\core.hpp>

      using namespace std; 

      using namespace cv; 

       

      int main()

      {

             string path = "3.jpg";

             int resize_height = 618;

             int resize_width = 460;

             Mat src = imread(path);

             Mat dst;

             imshow("src", src);

             resize(src, dst, Size(resize_width, resize_height), (0, 0), (0, 0), INTER_LINEAR);

             imshow("dst", dst);

             waitKey(0);

             return 0;

      }

    4. 4

      vector:resize()改變容器內元素的數量,調整內存分派;

      格局:

      void resize (size_type n, value_type val = value_type());

      當n比當前容器內元素數量小時,銷毀容器中多余的元素;

      當n比當前容器內元素數量年夜時,擴展容器巨細,并用val初始化;

      resize:設置內存巨細;

      【注】:若是n年夜于當前的vector的容量(是容量,并非vector的size),將會引起主動內存分派,所以現有的pointer,references,iterators將會掉效。

    5. 5

      應用:

      #include <iostream>

      #include <vector>

      using namespace std;

      int main()

      {     

             vector <int> wgw;

             cout << "initilize size is: " << wgw.size() << endl;

             cout << "initilize capacity is :" << wgw.capacity() <<endl;

             wgw.reserve(100);

             cout << "wgw size is: " << wgw.size() << endl;

             cout << "wgw capacity is :" << wgw.capacity() <<endl;

       

             vector <int>wgw1;

             wgw1.resize(200);

             cout << "wgw1 size is :" << wgw1.size()<<endl;

             cout << "wgw1 capacity is:" << wgw1.capacity() <<endl;

             getchar();

             return 0;

      }

    注重事項

    • 【注】:若是n年夜于當前的vector的容量(是容量,并非vector的size),將會引起主動內存分派,所以現有的pointer,references,iterators將會掉效。
    • 發表于 2018-04-12 00:00
    • 閱讀 ( 856 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

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