温馨提示×

Python怎么实现图像的几何变换

小亿
87
2024-04-29 19:45:52
栏目: 编程语言

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()函数显示变换后的图像。

0