当前位置:网站首页 > 创业 > 正文

OpenCV:resize函数 VS vector:resize函数

0 张子豪 张子豪 2025-10-12 08:50 1

绪:

图像处置中,改变图像巨细的操作是经常碰到的;

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将会掉效。

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/239858.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图