当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python OpenCV getRotationMatrix2D()用法及代码示例


cv2.getRotationMatrix2D() 函数用于制作用于旋转图像的变换矩阵 M。

用法:

cv2.getRotationMatrix2D(中心,角度,比例)

Parameters: 



  • center:旋转中心
  • 角度(θ):旋转角度。 anti-clockwise 的角度为正,顺时针的角度为负。
  • scale:缩放图像的缩放因子

返回:2×3 旋转矩阵 M

米=\begin{bmatrix} \alpha & \beta & (1-\alpha)\cdot c_x-\beta \cdot c_y\\ -\beta & \alpha & \beta\cdot c_x+(1-\alpha) \cdot c_y \end{bmatrix}

其中,

\alpha = scale\cdot cos(\theta)\\ \beta = scale\cdot sin(\theta)\\ c_x\ and\ c_y\ are\ the\ coordinates\ of\ the\ center\ of\ the\ image.\\

这是一种仿射变换。仿射变换是保留线和平行度的变换。 warpaffine() 函数将这些变换矩阵作为参数,并返回旋转后的图像。

使用的图片:

范例1:



Python3


import cv2
  
# Reading the image
image = cv2.imread('image.jpeg')
  
# Extracting height and width from 
# image shape
height, width = image.shape[:2]
  
# get the center coordinates of the
# image to create the 2D rotation
# matrix
center = (width/2, height/2)
  
# using cv2.getRotationMatrix2D() 
# to get the rotation matrix
rotate_matrix = cv2.getRotationMatrix2D(center=center, angle=90, scale=1)
  
# rotate the image using cv2.warpAffine 
# 90 degree anticlockwise
rotated_image = cv2.warpAffine(
    src=image, M=rotate_matrix, dsize=(width, height))
  
cv2.imshow("rotated image:", rotated_image)
cv2.imwrite('rotated_image.jpg', rotated_image)

输出-

范例2:

Python3


import cv2
  
# Reading the image
image = cv2.imread('image.jpeg')
  
# Extracting height and width from 
# image shape
height, width = image.shape[:2]
  
# get the center coordinates of the 
# image to create the 2D rotation matrix
center = (width/2, height/2)
  
# using cv2.getRotationMatrix2D() to get
# the rotation matrix
rotate_matrix = cv2.getRotationMatrix2D(center=center, angle=-90, scale=1)
  
# rotate the image using cv2.warpAffine 90 
# degree clockwise
rotated_image = cv2.warpAffine(
    src=image, M=rotate_matrix, dsize=(width, height))
  
cv2.imshow("rotated image:",rotated_image)
cv2.imwrite('rotated_image.jpg', rotated_image)

输出-

Python3


import cv2
  
# Reading the image
image = cv2.imread('image.jpeg')
  
# Extracting height and width from image shape
height, width = image.shape[:2]
  
# get the center coordinates of the image to 
# create the 2D rotation matrix
center = (width/2, height/2)
  
# using cv2.getRotationMatrix2D() to get 
# the rotation matrix
rotate_matrix = cv2.getRotationMatrix2D(center=center, angle=180, scale=1)
  
# rotate the image using cv2.warpAffine 180 
# degree anticlockwise
rotated_image = cv2.warpAffine(
    src=image, M=rotate_matrix, dsize=(width, height))
  
cv2.imshow("rotated image:", rotated_image)
cv2.imwrite('rotated_image.jpg', rotated_image)

输出-

范例4:

Python3


import cv2
  
# Reading the image
image = cv2.imread('image.jpeg')
  
# Extracting height and width from image shape
height, width = image.shape[:2]
  
# get the center coordinates of the image to
# create the 2D rotation matrix
center = (width/2, height/2)
  
# using cv2.getRotationMatrix2D() to get the
# rotation matrix
rotate_matrix = cv2.getRotationMatrix2D(center=center, angle=-180, scale=1)
  
# rotate the image using cv2.warpAffine 180
# degree clockwise
rotated_image = cv2.warpAffine(
    src=image, M=rotate_matrix, dsize=(width, height))
  
cv2.imshow("rotated image:", rotated_image)
cv2.imwrite('rotated_image.jpg', rotated_image)

输出-




相关用法


注:本文由纯净天空筛选整理自bhavyajain4641大神的英文原创作品 Python OpenCV – getRotationMatrix2D() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。