opencv旋转图像

0 、使用旋转矩阵旋转

python 复制代码
import cv2

img = cv2.imread('img.jpg', 1)
(h, w) = img.shape[:2] # 获取图像的宽和高

# 定义旋转中心坐标
center = (w / 2, h / 2)

# 定义旋转角度
angle = 90

# 定义缩放比例
scale = 1

# 获得旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)

# 进行旋转操作
result = cv2.warpAffine(img, M, (w, h))

# 显示旋转后的图片
cv2.imshow('result', result)

# 按下任意键退出
cv2.waitKey(0)
cv2.destroyAllWindows()

注:该方法旋转结果并不会对图像大小发生改变。

原图:

旋转结果:

1、通过转置反转进行旋转,该方法只能旋转90°的整数倍

python 复制代码
import  cv2
def cv_img_rotate(img,t=1):
    # 旋转 t=1 90° t=0 180°  t=-1 -90°
    if t == 1 :
        # 顺时针90度
        img = cv2.transpose(img)
        img = cv2.flip(img, 1)
    elif t == 0:
        # 顺时针180度
        img = cv2.flip(img, 1)
        img = cv2.flip(img, 0)
    elif t == -1:
        # 逆时针90°
        img = cv2.flip(img, 1)
        img = cv2.transpose(img)
    return img

img = cv2.imread('img.jpg', 1)
# 显示原始图片
cv2.imshow('img', img)
# 按下任意键退出
cv2.waitKey(0)
# 旋转图像
img = cv_img_rotate(img,t=1)
# 显示旋转后的图片
cv2.imshow('result', img)

# 按下任意键退出
cv2.waitKey(0)
cv2.destroyAllWindows()
# 这里使用了 1 -1 0 主要是可以在反转回原图时可以直接使用 -t 进行还原

该方法可以理解为整个旋转了图像。

旋转结果

相关推荐
机器之心1 分钟前
刚刚,OpenAI正式发布o3-pro!奥特曼激动更新博客:温和的奇点
人工智能·ai编程
硬核隔壁老王3 分钟前
从零开始搭建RAG系统系列(九):RAG系统性能优化技巧-检索模块优化 (Optimizing Retriever)
人工智能·程序员·llm
LLM大模型4 分钟前
LangChain篇-消息管理与聊天历史存储
人工智能·程序员·llm
通义灵码12 分钟前
通义灵码 AI IDE 上线!智能体+MCP 从手动调用工具过渡到“AI 主动调度资源”
ide·人工智能·阿里云·通义灵码
声网37 分钟前
iOS 26 新增实时翻译:基于端侧并向第三方开放接口;Neuralink 和 Grok 使渐冻症患者重新「发声」丨日报
人工智能
大话数据分析11 小时前
有哪些好用的AI工具或者工具集网站?
人工智能
MerlinTheMagic1 小时前
uv管理spaCy语言模型
人工智能·语言模型·uv
cylat1 小时前
Day23 pipeline管道
人工智能·python·算法·机器学习
小天才才2 小时前
算法岗面试经验分享-大模型篇
人工智能·语言模型·自然语言处理
IOT.FIVE.NO.12 小时前
Conda安装pytorch和cuda出现问题的解决记录
人工智能·pytorch·python