opencv 图像旋转 cv2.rotate和np.rot90案例精讲

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("meinv.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()

opencv 图像旋转 cv2.rotate和np.rot90案例精讲

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:选择两个维度进行旋转

一个简单示例如下:

546e2fc443a76c6c600891d3de67df65.png
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()

opencv 图像旋转 cv2.rotate和np.rot90案例精讲

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/11187.html

(0)
江山如画的头像江山如画管理团队
上一篇 2022年12月1日 下午1:57
下一篇 2022年12月23日 上午9:59

99%的人还看了以下文章

  • Python数据分析入门实战一:统计分析用户学习数据

    Python数据分析要求: 使用 Python 基础知识分析用户学习数据 json 文件,并从文件中统计出中指定的数据项。 用户学习数据 json 文件下载: http://labfile.oss.aliyuncs.com/courses/764/user_study.json user_study.json 文件部分内容展示如下: {“minutes”: …

    2022年2月5日
    4.2K0
  • idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    在servlet3.0以后,web.xml中对Servlet配置,可以通过@WebServlet注解配置.下面是@WebServlet的属性列表: 属性名 类型 描述 name String 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 value …

    2020年8月22日 编程开发
    16.8K0
  • js中var a=b=1和var a=1,b=1的区别

    js中一次性定义多个变量的时候,可以用:var a=1,b=1这种中间用逗号隔开的方式,但有些时候为了省事,直接定义var a=b=1。 那这两种写法方式最后效果是一样的吗?有没有什么区别呢?请大家看下面的范例: 1、用var a=b=1的方式 由上图可以明显看出来,变量b的作用域已经是全局的了,因为在函数外可以调用到(可以正常的输出变量)。 2、用var …

    2022年3月19日
    2.6K0
  • 左侧固定,右侧自适应布局的两种实现方法

    左侧固定,右侧自适应布局效果图 很多页面,特别是网站后台管理页面,不少采用左右布局。本文讲解左侧固定,右侧自适应布局的两种实现方法。 左侧固定200px宽,右侧自适应,中间间隔10px。 HTML: <div class=”parent”> <div class=”side”></div> <div class=”m…

    2019年3月10日
    4.7K0
  • 主流网页设计页面的的宽度(尺寸)是多少?

    最新的中国网民电脑分辨率统计情况显示95%的用户在1280以上,一些用户数较多的电商网站最大宽度一般也为1190或1200,如淘宝、天猫、京东…网页宽度为1200将会成为主流,当然现在很多网站为响应式网站可以适应多种分辨率了。

    2020年3月11日
    22.9K0
  • 免费网站打包APP,网址打包APP教程 – HBuilder

    网上有很多将网站在线打包成APP的网站,都是收费,其实网站只要做好移动端优化,或本身就是响应式网站,只需要简单的几个步骤就能把网站打包成简洁的APP。 相应工具很多,中国网页设计推荐使用:HBuilder:官网dcloud.io 会做网页就会制作APP 先学习如何制作APP   VS   先学的制作网页 其实很多APP都是利用网页打包成的… 利用HBuild…

    2019年6月24日 编程开发
    8.6K0

发表回复

登录后才能评论