OpenCV 中如何旋转图像?

推荐答案

在 OpenCV 中,可以通过 cv2.getRotationMatrix2Dcv2.warpAffine 函数来旋转图像。以下是一个示例代码:

-- -------------------- ---- -------
------ ---

- ----
----- - -----------------------

- ----------
--- -- - ---------------

- -------
------ - -- -- -- - -- --

- -----------
----- - --
----- - ---

- ------
- - ------------------------------- ------ ------

- ------
------- - --------------------- -- --- ---

- --------
------------------- ------- --------
--------------
-----------------------

本题详细解读

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),其中 wh 分别是图像的宽度和高度。

4. 旋转角度

旋转角度可以是任意值,正值表示逆时针旋转,负值表示顺时针旋转。

5. 缩放比例

缩放比例可以调整图像的大小,1.0 表示不缩放,小于 1.0 表示缩小,大于 1.0 表示放大。

6. 显示旋转后的图像

使用 cv2.imshow 函数显示旋转后的图像,并通过 cv2.waitKeycv2.destroyAllWindows 函数控制窗口的显示和关闭。

通过以上步骤,可以在 OpenCV 中实现图像的旋转操作。

纠错
反馈