【OpenCV学习】(六)图像基本变换
背景
图像的变换通常用于数据预处理部分,例如缩放旋转等常见的图像变换方法;在一些深度学习框架内部都分装了图像变换的方法,对训练集做统一的图像变换操作;
一、图像缩放
函数原型:
resize(src,dsize,[fx,fy,interpolation])
- fx:x轴的缩放因子;
- fy:y轴的缩放因子;
- interpolation:插值算法;
插值算法有以下几种:
1、INTER_NEAREST:最近邻插值,速度快,效果差;
2、INTER_LINEAR:双线性插值,基于原图的四个点;(默认插值方法)
3、INTER_CUBIC:三次插值,基于原图16个点,效果好但耗时大;
4、INTER_AREA:效果最好,速度也最慢;
二、图像翻转
图像翻转不等同于旋转,类似于一些视频的拍摄,拍摄后实际是左右颠倒的,通过图像翻转可进行还原;
函数原型:
filp(img,filpCode):filpCode等于0(上下翻转)、大于0(左右翻转)、小于0(上下+左右翻转)
代码案例:
cv2.filp(img, 0) # 上下翻转
cv2.filp(img, 1) # 左右翻转
cv2.filp(img, -1) # 上下左右翻转
三、图像旋转
函数原型:
rotate(img,rotateCode)
- ROTATE_90_CLOCKWISE:顺时针旋转90°
- ROTATE_180:旋转180°
- ROTATE_90_COUNTERCLOCKWISE:逆时针旋转90°
四、图像仿射变换——平移
首先介绍一下放射变换,简单来说就是图像旋转、缩放、平移的总称;
函数原型:
warpAffine(src,M,dsize,flags,mode,value)
- M:变换矩阵
- dsize:输出尺寸大小
- flags:与size中的插值算法一致
- mode:边界外推法标志
- value:填充边界的值
实际上平移矩阵就是一个2x2的单位矩阵加上一个2x1的平移向量,也就是2x3的矩阵;
代码案例:
img = cv2.imread('img.jpg')
h,w,c = img.shape
M = np.float32(

本文介绍了OpenCV中的图像缩放、翻转、旋转、仿射变换(包括平移和旋转)、透视变换等基本操作,以及如何通过变换矩阵实现这些效果。重点讲解了获取变换矩阵的不同方法和实际应用场景,是图像预处理和深度学习项目中的实用技巧。
图像基本变换&spm=1001.2101.3001.5002&articleId=122339174&d=1&t=3&u=8145246612364fbfbc4d4191136f27a3)
2789

被折叠的 条评论
为什么被折叠?



