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
  • 阅读 ( 853 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

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 问答工具