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 进行还原

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

旋转结果

相关推荐
YMWM_34 分钟前
如何将包路径添加到conda环境lerobot的python路径中呢?
人工智能·python·conda
星辰_mya37 分钟前
关于ai——纯笔记
人工智能
智算菩萨1 小时前
GPT-5.4原生操控电脑揭秘:从Playwright脚本到屏幕截图识别,手把手搭建你的第一个自动化智能体
人工智能·gpt·ai·chatgpt·自动化
田里的水稻1 小时前
ubuntu22.04_openclaw_ROS2
人工智能·python·机器人
一碗白开水一1 小时前
【工具相关】OpenClaw 配置使用飞书:打造智能飞书助手全流程指南(亲测有效,放心享用)
人工智能·深度学习·算法·飞书
小程故事多_801 小时前
Vibe Coding的致命隐患,你必须知道的技术债务和扩展性危机
大数据·人工智能·aigc
童话名剑1 小时前
YOLO v3(学习笔记)
人工智能·深度学习·yolo·目标检测
康康的AI博客1 小时前
农业工业变革:如何通过DMXAPI中转提升自动化效率
运维·人工智能·自动化
实在智能RPA1 小时前
从API集成到意图驱动:深度解析实在Agent在复杂ERP/OA环境下的非标接口处理架构
人工智能·ai·架构
北京耐用通信1 小时前
协议融合的工业钥匙:耐达讯自动化网关如何打通CC-Link IE转DeviceNet的通信壁垒
人工智能·物联网·网络协议·自动化·信息与通信