Python中可以使用OpenCV库来实现图像的几何变换。下面是一个简单的例子,演示如何对图像进行平移、旋转和缩放等几何变换:
import cv2 import numpy as np # 读取图像 img = cv2.imread('image.jpg') # 获取图像的高度和宽度 h, w = img.shape[:2] # 定义平移矩阵,沿x轴平移100个像素,沿y轴平移50个像素 M_translate = np.float32([[1, 0, 100], [0, 1, 50]]) # 进行平移变换 img_translate = cv2.warpAffine(img, M_translate, (w, h)) # 定义旋转矩阵,绕图像中心逆时针旋转30度 M_rotate = cv2.getRotationMatrix2D((w/2, h/2), 30, 1) # 进行旋转变换 img_rotate = cv2.warpAffine(img, M_rotate, (w, h)) # 定义缩放矩阵,x方向缩放为原来的0.5倍,y方向缩放为原来的1.5倍 M_scale = np.float32([[0.5, 0, 0], [0, 1.5, 0]]) # 进行缩放变换 img_scale = cv2.warpAffine(img, M_scale, (w, h)) # 显示变换后的图像 cv2.imshow('Translate Image', img_translate) cv2.imshow('Rotate Image', img_rotate) cv2.imshow('Scale Image', img_scale) cv2.waitKey(0) cv2.destroyAllWindows()
在这个例子中,首先读取一张图像,然后分别定义了平移、旋转和缩放的变换矩阵,并利用cv2.warpAffine()
函数对图像进行变换。最后使用cv2.imshow()
函数显示变换后的图像。