四.OpenCv图像的基本变换
来源:华佗健康网
4. 图像的基本变换
4.1 图像的放大与缩小
-
resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- src: 要缩放的图片
- dsize: 缩放之后的图片大小, 元组和列表表示均可.
- dst: 可选参数, 缩放之后的输出图片
- fx, fy: x轴和y轴的缩放比, 即宽度和高度的缩放比.
- interpolation: 插值算法, 主要有以下几种:
- INTER_NEAREST, 邻近插值, 速度快, 效果差.
- INTER_LINEAR, 双线性插值, 使用原图中的4个点进行插值. 默认.
- INTER_CUBIC, 三次插值, 原图中的16个点.
- INTER_AREA, 区域插值, 效果最好, 计算时间最长.
import cv2 import numpy as np #导入图片 dog = cv2.imread('./dog.jpeg') # x,y放大一倍 new_dog = cv2.resize(dog,dsize=(800, 800), interpolation=cv2.INTER_NEAREST) cv2.imshow('dog', new_dog) cv2.waitKey(0) cv2.destroyAllWindows()
4.2 图像的翻转
- flip(src, flipCode)
- flipCode =0 表示上下翻转
- flipCode >0 表示左右翻转
- flipCode <0 上下 + 左右
# 翻转
import cv2
import numpy as np
#导入图片
dog = cv2.imread('./dog.jpeg')
new_dog = cv2.flip(dog, flipCode=-1)
cv2.imshow('dog', new_dog)
cv2.waitKey(0)
cv2.destroyAllWindows()
4.3 图像的旋转
- rotate(img, rotateCode)
- ROTATE_90_CLOCKWISE 90度顺时针
- ROTATE_180 180度
- ROTATE_90_COUNTERCLOCKWISE 90度逆时针
# 旋转
import cv2
import numpy as np
#导入图片
dog = cv2.imread('./dog.jpeg')
new_dog = cv2.rotate(dog, rotateCode=cv2.cv2.ROTATE_90_COUNTERCLOCKWISE)
cv2.imshow('dog', new_dog)
cv2.waitKey(0)
cv2.destroyAllWindows()
4.4 仿射变换之图像平移
-
仿射变换是图像旋转, 缩放, 平移的总称.具体的做法是通过一个矩阵和和原图片坐标进行计算, 得到新的坐标, 完成变换. 所以关键就是这个矩阵.
-
warpAffine(src, M, dsize, flags, mode, value)
-
M:变换矩阵
-
dsize: 输出图片大小
-
flag: 与resize中的插值算法一致
-
mode: 边界外推法标志
因篇幅问题不能全部显示,请点此查看更多更全内容