绪:
图像处置中,改变图像大小的操作是经常碰到的;
OpenCV库resize函数专门用来改变图像大小的操作函数;
而C++中,vector::resize改变容器大小;
本文本家儿要介绍这两者resize用法;

工具/原料
- OpenCV 2410
方式/步骤
- 1
格局:
void resize(InputArray src, //输入
OutputArray dst, //输出
Size dsize, //指定图像大小
double fx=0,
double fy=0,
int interpolation=INTER_LINEAR )

- 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
应用实例
#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
vector:resize()改变容器内元素的数量,调整内存分派;
格局:
void resize (size_type n, value_type val = value_type());
当n比当前容器内元素数量小时,销毁容器中多余的元素;
当n比当前容器内元素数量年夜时,扩展容器大小,并用val初始化;
resize:设置内存大小;
【注】:若是n年夜于当前的vector的容量(是容量,并非vector的size),将会引起主动内存分派,所以现有的pointer,references,iterators将会掉效。

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







