掌握使用resize函数实现图像尺寸变换的技巧。
1、 函数原型定义
2、 输入图像以src标识,输出图像以dst标识,dsize用于指定目标图像的具体宽高,各参数语义清晰易懂。调用时需注意:dsize与缩放因子fx、fy不可同时为零——即若显式设置了dsize,则fx和fy可设为0;反之,若dsize设为0,则需通过fx和fy来控制缩放比例。该函数支持任意目标尺寸设定,不强制维持原始图像的宽高比;在缩放过程中,新增或舍弃的像素值由所选插值策略(interpolation)决定。其中,fx表示水平方向缩放倍数,fy表示垂直方向缩放倍数。当dsize为0时,目标图像宽度 = 原图宽度 × fx,高度 = 原图高度 × fy,系统据此自动推算输出尺寸;而当dsize被明确赋值时,fx与fy将由系统反向计算得出,公式为:fx = dsize.width / src.cols,fy = dsize.height / src.rows。因此,在实际编码中仅需指定dsize或fx与fy中的任意一组参数,另一组应置为0,以防参数冲突,保障resize操作准确执行。
3、 可选插值方式包括:INTER_NN(最近邻插值),运算高效但图像质量较差;INTER_LINEAR(双线性插值),为系统默认选项,兼顾效率与视觉平滑性;INTER_AREA(区域插值),基于像素块重采样,特别适合图像缩小操作,能显著抑制摩尔纹,放大时效果近似最近邻;INTER_CUBIC(立方插值),利用邻域更多像素参与计算,重建精度更高,适用于对图像细节要求严苛的应用场景。各类插值方法在处理速度与成像质量之间存在不同取舍。

4、 打开Visual Studio 2015,新建项目,选择“Win32控制台应用程序”,并在配置向导中勾选“空项目”选项;之后在“源文件”目录下添加一个名为resize.cpp的C++源文件。


5、 在resize.cpp中录入如下程序代码
6、 引入OpenCV核心头文件,以便调用其提供的图像处理与计算机视觉相关功能。
7、 {
8、 图像路径设置为C:UserslidabaoDesktopLena.bmp,表明该测试图片位于用户桌面,程序将从该路径加载Lena.bmp完成后续缩放处理。
9、 按彩色模式读取指定路径下的图像文件,并将数据载入src图像变量中。
10、 应用双线性插值算法进行尺寸调整
11、 采用立方插值算法执行图像缩放
12、 }

13、 经双线性插值缩放后,图像宽高均缩减为原始尺寸的50%。

14、 使用立方插值处理后,图像长度扩大至原图两倍,宽度则压缩为原图一半。












