放射变换是图像旋转,缩放,平移的总称,具体的做法是通过一个矩阵和原图片坐标进行计算,得到新的坐标,完成变换,所以关键就是这个矩阵。
一、仿射变换之图像平移
使用API------warpAffine(src ,M, dsize, flags, mode, value)
warp:弯曲 affine:仿射
其中src为图片
M:变换矩阵
dsize:输出图片大小
flag: 与resize中的插值算法一直
mode:边界外推法标志
value:填充边界值
平移矩阵:矩阵中的每个像素由(x,y)组成(x,y)表示这个像素的坐标,假设沿x轴平移tx,沿y轴平移ty,那么最后得到的坐标为(x,y) = (x + tx, y + ty),用矩阵表示就是:

第一个坐标代表列,第二个坐标代表行。
示例代码如下:
import cv2
import numpy as np
dog = cv2.imread("dog.png")
h, w, ch = dog.shape
print(dog.shape) # 先行后列
# 写下变换矩阵,最少是float32位
M = np.float32([[1, 0, 200], [0, 1, 0]]) # 第一个对应水平平移,第二个对应上下平移
new_dog = cv2.warpAffine(dog, M, dsize=(w, h)) # 先列后行
cv2.imshow("dpg", dog)
cv2.imshow("

本文详细介绍了OpenCV库中如何使用仿射变换进行图像的平移、旋转以及透视变化,包括warpAffine函数、getRotationMatrix2D和getAffineTransform的使用方法,以及透视变换的getPerspectiveTransformAPI。
最低0.47元/天 解锁文章
1万+

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



