- opencv的安装与配置
step1: 添加path
计算机-属性-高级-环境变量-path
添加bin目录
step2:属性配置
打开项目属性页,在VC++目录里添加包含目录和库目录。
链接器里添加附加依赖性
推荐一个超级好用的神器 ImageWatch。可以单步调试查看图像的变化
下载地址:
https://visualstudiogallery.msdn.microsoft.com/e682d542-7ef3-402c-b857-bbfba714f78d
下载后直接安装,然后打开一个项目,视图-其他窗口-Imagewatch即可
注意:属性配置的时候要注意debug模式、release模式还是所有配置。
- 图像插值法
图像变换:在对原始图像进行缩放、旋转变换的时候,因为在目标图像中像素分布发生了变换,所以需根据一定的映射规则建立从原始图像到目标图像的转换。
常见插值算法:
(1)最近邻插值
最近邻插值,是指图像变换过程中将目标图像中的点,对应到源图像中后,找到最相邻的整数点,作为插值后的输出。
(2)双线性插值
双线性插值的思路就是利用映射到原始图像匹配点像素临近四个点对目标图像的像素点进行求解。
- opencv代码实现
void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
src:输入图像
dst:输出图像
dsize:输出图像尺寸
fx、fy:x,y方向上的缩放因子
INTER_LINEAR:插值方法,总共五种
1. INTER_NEAREST - 最近邻插值法
2. INTER_LINEAR - 双线性插值法(默认)
3. INTER_AREA - 基于局部像素的重采样(resampling using pixel area relation)。对于图像抽取(image decimation)来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。
4. INTER_CUBIC - 基于4x4像素邻域的3次插值法
5. INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值
正常情况下使用默认的双线性插值就够用了。
几种常用方法的效率是:最邻近插值>双线性插值>双立方插值>Lanczos插值;
但是效率和效果成反比,所以根据自己的情况酌情使用。