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)
江山如画的头像江山如画管理团队
JSP页面使用Servlet制作图形验证码
上一篇 2022年12月1日 下午1:57
5天!WordPress网站中木马病毒从百度进来跳转到恶意网站的解决办法
下一篇 2022年12月23日 上午9:59

99%的人还看了以下文章

  • 设计师如何构建自己的知识体系?

    设计师如何构建自己的知识体系?设计师如何构建自己的知识体系?设计师如何构建自己的知识体系?设计师如何构建自己的知识体系?

    最近几年能看到各行各业越来越多关于知识体系化的文章话题被关注,一定程度上说明在当前社会发展中,大家越来越重视个人知识体系化的积累。本篇文章将围绕知识体系为主题,会涉及到很多不同纬度的知识内容展开。 为什么要构建知识体系 第一,系统化知识,可以帮助我们更高效学习,节省学习中大量不必要的时间; 第二,学习吸收进来的知识点及时纳入体系里,可以让知识记得更加牢固; …

    2022年8月10日 网页设计
    12.9K0
  • java Jdbc数据库分页源码详解

    本文用到了jdbc 的游标移动 package com.sp.person.sql.util; import java.sql.*; import java.util.Map; import java.util.TreeMap; import javax.sql.DataSource; /** * JDBC 分页查询 * absolute 与relative…

    2020年2月19日
    6.7K0
  • 决定网页设计品质的9个细节

    决定网页设计品质的9个细节决定网页设计品质的9个细节决定网页设计品质的9个细节决定网页设计品质的9个细节

    细节决定成败”在页面设计中是颠扑不破的真理。一个页面的细节能充分体现出页面的品质。本文介绍了网页设计中的字号、字体、样式、间距、颜色、排版、留白、层次、光影等细节如何处理?

    2020年2月6日 网页设计
    7.2K0
  • MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆

    MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆

    MVC(JSP+JavaBean+Servlet)+MYSQL实现用户登陆模块,具体功能: 客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginValidate.java)调用JavaBean(LoginDBO.java)验证用户名和密码,最后调用视图returnMessage.jsp显示,如果成功显示成功信息,不成功显…

    2018年11月27日 编程开发
    23.3K0
  • 6个技巧让你的版面设计的脱颖而出!

    优秀的版面设计可以让一个普通的文档脱颖而出。本文给大家分享6个让你版面设计脱颖而出的技巧:对齐,聚拢,重复,对比,强调,留白。并通过实例讲解原有版面设计的不足,运用这6个技巧如何改进你的版面设计。

    2018年10月2日
    11.1K0
  • Python开发环境搭建

    今天学习在计算机上配置Python开发环境。 虽然使用Python自带的Vim编辑器+命令行的方式比较酷,然而一个优秀的IDE确实能让开发速度提升不少。 Python开发环境一在Eclipse中搭建Python开发环境 基本软件需求:1. Eclipse(https://www.eclipse.org/downloads/)2. Python解释器(www.…

    2019年3月15日
    22.9K1

发表回复

登录后才能评论