之前实现过C实现纵横比保持的RGB图像缩放,其实计算效率是不高的。
opencv的好多实现都是自带mmx, sse加速的。所以就来研究一下如何用opencv来实现纵横比保持的图像缩放。
查看了一下opencv resize函数的详细定义:
resize函数
函数原型:
void cv::resize(
InputArray _src,
OutputArray _dst,
Size dsize,
double inv_scale_x = 0,
double inv_scale_y = 0,
int interpolation = INTER_LINEAR
)
参数说明:
-
src
,输入图像,Mat类型即可; -
dst
,输出图像,当其非零时,有着dsize(第三个参数)的尺寸或者有src.size()计算出来; -
dsize
,输出图像的大小。如果它等于0,由下式计算:dsize = Size( round(fx*src.cols, round(fy*src.rows))); 其中fx,fy,dsize都能不为0
-
fx
,沿水平轴的缩放系数,默认值为