推荐答案
在 OpenCV 中,可以通过 cv2.getRotationMatrix2D 和 cv2.warpAffine 函数来旋转图像。以下是一个示例代码:
// www.javascriptcn.com code example
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 获取图像的高度和宽度
(h, w) = image.shape[:2]
# 定义旋转中心点
center = (w // 2, h // 2)
# 定义旋转角度和缩放比例
angle = 45
scale = 1.0
# 获取旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)
# 执行旋转操作
rotated = cv2.warpAffine(image, M, (w, h))
# 显示旋转后的图像
cv2.imshow("Rotated Image", rotated)
cv2.waitKey(0)
cv2.destroyAllWindows()本题详细解读
1. cv2.getRotationMatrix2D 函数
cv2.getRotationMatrix2D 函数用于生成一个 2x3 的旋转矩阵。该函数的参数包括:
center: 旋转中心点的坐标,通常为图像的中心点。angle: 旋转角度,单位为度,正值表示逆时针旋转。scale: 缩放比例,1.0 表示不缩放。
2. cv2.warpAffine 函数
cv2.warpAffine 函数用于应用仿射变换,包括旋转、缩放和平移等操作。该函数的参数包括:
src: 输入图像。M: 2x3 的变换矩阵,通常由cv2.getRotationMatrix2D生成。dsize: 输出图像的大小,通常与输入图像相同。
3. 旋转中心点
旋转中心点通常选择图像的中心点,即 (w // 2, h // 2),其中 w 和 h 分别是图像的宽度和高度。
4. 旋转角度
旋转角度可以是任意值,正值表示逆时针旋转,负值表示顺时针旋转。
5. 缩放比例
缩放比例可以调整图像的大小,1.0 表示不缩放,小于 1.0 表示缩小,大于 1.0 表示放大。
6. 显示旋转后的图像
使用 cv2.imshow 函数显示旋转后的图像,并通过 cv2.waitKey 和 cv2.destroyAllWindows 函数控制窗口的显示和关闭。
通过以上步骤,可以在 OpenCV 中实现图像的旋转操作。