掌握resize函数调整图像大小的方法。
1、 函数声明
2、 源图像用src表示,目标图像用dst表示,dsize用于设定目标图像的尺寸,各参数含义较为直观。使用时需注意,dsize与fx、fy不能同时为零:即要么指定dsize而不依赖fx和fy,此时fx与fy可设为0;要么将dsize设为0,通过fx和fy来确定缩放比例。resize函数允许目标图像具有任意尺寸,无需保持原始长宽比,图像缩小或放大过程中被删除或新增的像素值由插值方法(interpolation)决定。其中,fx代表水平方向的缩放比例,fy代表垂直方向的缩放比例。当dsize为0时,目标图像的宽度等于原图宽度乘以fx,高度等于原图高度乘以fy,据此自动推导输出尺寸。相反,若dsize被明确设定,则fx和fy会由系统自动计算得出,公式分别为fx = dsize.width / src.cols 和 fy = dsize.height / src.rows。因此,在实际应用中只需设置dsize或fx与fy其中之一即可,另一个应保持为0,避免参数冲突,确保函数正确执行图像尺寸调整操作。
3、 插值方式可选择:INTER_NN 表示最近邻插值,计算简单但精度较低;INTER_LINEAR 为双线性插值,是默认的插值方法,效果较平滑;INTER_AREA 基于像素区域关系进行重采样,适用于图像缩小,能有效防止波纹产生,放大时表现接近最近邻;INTER_CUBIC 采用立方插值,利用周围更多像素点进行计算,图像质量更高,适合对精度要求较高的场景。不同方法在速度与效果上各有权衡。
4、 启动VS2015,创建新项目,选择Win32控制台应用程序,勾选空项目选项,随后在源文件中添加一个名为resize的CPP文件。
5、 在resize.cpp文件中编写以下代码内容
6、 包含OpenCV库的头文件,用于图像处理与计算机视觉功能调用。
7、 {
8、 图片文件的路径为C:UserslidabaoDesktopLena.bmp,表示该图像存储在桌面,程序将从此位置读取Lena.bmp文件进行后续处理。
9、 读取指定路径的图像文件,以彩色模式加载图片数据到源图像变量中。
10、 双线性插值算法
11、 立方插值算法
12、 }
13、 双线性插值处理后,图像长宽均缩小为原来的一半。
14、 立方插值处理后,图像长度放大两倍,宽度压缩至原来的一半。
评论
更多评论