专栏首页机器视觉CV【数字图像处理】旋转图像的几种方法

【数字图像处理】旋转图像的几种方法

今天介绍两种旋转图像的方法

OpenCV 方法

OpenCV 中带有一个旋转图像的函数 cv2.rotate

rotate(src, rotateCode[, dst]) -> dst 参数: src:输入图像 rotateCode:旋转方式 1、cv2.ROTATE_90_CLOCKWISE:顺时针 90 度 2、cv2.ROTATE_180:顺时针 180 度 3、cv2.ROTATE_90_COUNTERCLOCKWISE:顺时针 180 度 或者 逆时针 90 度 dst:输出的结果

OpenCV 实现程序如下:

import numpy as np
import cv2

img = cv2.imread("Rc8gJko9yb71al.jpg")

rotate_90_cv = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
rotate_180_cv = cv2.rotate(img, cv2.ROTATE_180)
rotate_270_cv = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)

cv2.imshow("img", img)
cv2.imshow("rotate_90_cv", rotate_90_cv)
cv2.imshow("rotate_180_cv", rotate_180_cv)
cv2.imshow("rotate_270_cv", rotate_270_cv)
cv2.waitKey(0)
cv2.destroyAllWindows()

numpy 方法

numpy 中也提供一种旋转图像或者矩阵的方法 np.rot90 顾名思义就是选择多少个 90 度,与 OpenCV 中实现不同的是,numpy 的这个函数是逆时针旋转的,其函数说明如下:

np.rot90(m, k=1, axes=(0, 1)) 参数:m:输入的矩阵或者图像 k:逆时针旋转多少个 90 度,k 取 0、1、2、3 分别对应逆时针旋转 0 度、90 度、180 度、270 度 axes:选择两个维度进行旋转

一个简单示例如下:

numpy 实现程序如下:

import numpy as np
import cv2

img = cv2.imread("Rc8gJko9yb71al.jpg")


rot_90 = np.rot90(img, 1)
rot_180 = np.rot90(img, 2)
rot_270 = np.rot90(img, 3)


cv2.imshow("img", img)
cv2.imshow("rot_90", rot_90)
cv2.imshow("rot_180", rot_180)
cv2.imshow("rot_270", rot_270)
cv2.waitKey(0)
cv2.destroyAllWindows()

本文分享自微信公众号 - 机器视觉CV(AIandCV),作者:Leong

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OpenCV Python 系列教程 4 - OpenCV 图像处理(上)

    HSV 的色相范围为 [0,179],饱和度范围为 [0,255],值范围为 [0,255]。不同的软件使用不同的规模。

    机器视觉CV
  • OpenCV 系列教程5 | OpenCV 图像处理(中)

    霍夫变换是一种特征提取技术,主要应用于检测图像中的直线或者圆。 OpenCV 中分为霍夫线变换和霍夫圆变换。

    机器视觉CV
  • OpenCV 系列教程1 | OpenCV 的 GUI 特性

    Matplotlib是一个用于Python的绘图库,它提供了多种绘图方法。在这里,将学习如何使用 Matplotlib 显示图像。可以使用 Matplotlib...

    机器视觉CV
  • Spring 注解大全

    @Autowired标记Spring将要解析和注入的依赖项。我们可以使用构造函数、setter或字段注入来使用这个注释。

    终身幼稚园
  • EfficientNet详解:当前最强网络

    EfficientNet源自Google Brain的论文EfficientNet: Rethinking Model Scaling for Convolut...

    用户7164815
  • OpenLayers3加载离线百度地图(百度迁徙底图)

    关于openlayers加载离线百度地图的东东好几年前就做过了,不过当时做的是2.0版本的。 自从好久没有去做可视化分析之后,也很少接触这些前端的JS的东西了。...

    sparkexpert
  • Flutter 源码系列:DropdownButton 源码浅析

    其实关于 DropdownButton 的构造函数和简单使用我在上一篇文章中已经有过讲解,

    Flutter笔记
  • 用Python在25行以下代码实现人脸识别

    在本文中,我们将看到一种使用Python和开放源码库开始人脸识别的非常简单的方法。

    Python知识大全
  • Qt官方示例解析-Address Book-基于单个数据模型在不同视图呈现不同数据

    提要:Qt的这个示例主要讲的是使用代理模型,实现在不同的视图上面显示单个数据模型的数据 这个示例提供了一个地址簿,将联系人按照名称字母{"ABC", "DEF...

    Sky_Mao
  • 6-4~7 Bundler 源码编写

    我们获取到了文本以后,如果直接就拿来分析依赖当然也可以,但是处理起来非常麻烦,效率也低下,尤其是文件内容复杂的时候。所以我们需要将文本转化为 js 可直接操作的...

    love丁酥酥

扫码关注云+社区

领取腾讯云代金券