首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV Python将图像围绕特定点旋转X度

OpenCV Python将图像围绕特定点旋转X度
EN

Stack Overflow用户
提问于 2012-01-28 07:59:01
回答 11查看 141.6K关注 0票数 70

我很难找到使用OpenCV在Python语言中将图像围绕特定点旋转特定角度(通常非常小)的示例。

这就是我到目前为止所得到的,但它产生了一个非常奇怪的结果图像,但它有些旋转:

代码语言:javascript
运行
复制
def rotateImage( image, angle ):
    if image != None:
        dst_image = cv.CloneImage( image )

        rotate_around = (0,0)
        transl = cv.CreateMat(2, 3, cv.CV_32FC1 )

        matrix = cv.GetRotationMatrix2D( rotate_around, angle, 1.0, transl )
        cv.GetQuadrangleSubPix( image, dst_image, transl )
        cv.GetRectSubPix( dst_image, image, rotate_around )

    return dst_image
EN

回答 11

Stack Overflow用户

发布于 2012-01-28 12:28:25

代码语言:javascript
运行
复制
import numpy as np
import cv2

def rotate_image(image, angle):
  image_center = tuple(np.array(image.shape[1::-1]) / 2)
  rot_mat = cv2.getRotationMatrix2D(image_center, angle, 1.0)
  result = cv2.warpAffine(image, rot_mat, image.shape[1::-1], flags=cv2.INTER_LINEAR)
  return result

假设您使用的是cv2版本,该代码会找到您想要旋转的图像的中心,计算转换矩阵并应用于该图像。

票数 114
EN

Stack Overflow用户

发布于 2013-09-08 20:18:10

或者更容易使用SciPy

代码语言:javascript
运行
复制
from scipy import ndimage

#rotation angle in degree
rotated = ndimage.rotate(image_to_rotate, 45)

有关更多用法信息,请参阅here

票数 62
EN

Stack Overflow用户

发布于 2015-10-04 10:00:34

代码语言:javascript
运行
复制
def rotate(image, angle, center = None, scale = 1.0):
    (h, w) = image.shape[:2]

    if center is None:
        center = (w / 2, h / 2)

    # Perform the rotation
    M = cv2.getRotationMatrix2D(center, angle, scale)
    rotated = cv2.warpAffine(image, M, (w, h))

    return rotated
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9041681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档