OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)

简介: OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)

OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)


前言

计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:

1、研究代码(慢,不稳定,独立并与其他库不兼容)

2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)

3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。

OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。

故而我们选择学习OpenCV,我们来一步步的学习OpenCV。


图像旋转与翻转

图像旋转

rotate函数语法

rotate(src, rotateCode, dst=None)

rotate函数参数说明

src:输入图像

rotateCode:翻转角度,3种选择,90度,180度,270度

dst:输出图像

实例代码

import cv2
img = cv2.imread('800_600.jpg')
img = cv2.resize(img, None, fx=0.7, fy=0.7)
# 平移 3种旋转,使用cv2.ROTATE_参数进行选择
# 顺时针90度
demo1 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
# 顺时针270度
demo2 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)
# 顺时针180度
demo3 = cv2.rotate(img, cv2.ROTATE_180)
cv2.imshow('base', img)
cv2.imshow('demo1', demo1)
cv2.imshow('demo2', demo2)
cv2.imshow('demo3', demo3)
cv2.waitKey(0)
cv2.destroyAllWindows()

旋转效果

imutils环境安装

pip install imutils

逆时针旋转33度

import cv2
import imutils
img = cv2.imread('800_600.jpg')
img = cv2.resize(img, None, fx=0.7, fy=0.7)
demo1 = imutils.rotate_bound(img, -33)
cv2.imshow('base', img)
cv2.imshow('demo1', demo1)
cv2.waitKey(0)
cv2.destroyAllWindows()

旋转效果:

图像翻转

图像上下翻转

import cv2
image = cv2.imread('800_600.jpg')
dst = cv2.flip(image, 0)
cv2.imshow("image", image)
cv2.imshow("res2", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

核心代码

dst = cv2.flip(image, 0)

图像左右翻转

import cv2
image = cv2.imread('800_600.jpg')
dst = cv2.flip(image, 1)
cv2.imshow("image", image)
cv2.imshow("res2", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

核心代码

dst = cv2.flip(image, 1)

图像上下左右翻转

import cv2
image = cv2.imread('800_600.jpg')
dst = cv2.flip(image, -1)
cv2.imshow("image", image)
cv2.imshow("res2", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

核心代码

dst = cv2.flip(image, -1)

总结

旋转与翻转操作是非常多的,我们很多时候都会需要这个功能,为了方便查询都放在这个文章中了,后续有其它旋转的方法我也都放进来,查询起来方便、快捷、高效。

相关文章
|
6月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.8、threshold阈值0-4效果对照图
OpenCV这么简单为啥不学——1.8、threshold阈值0-4效果对照图
62 0
|
6月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.13图片冷白皮(美白)处理
OpenCV这么简单为啥不学——1.13图片冷白皮(美白)处理
69 0
|
1月前
|
算法 计算机视觉
Opencv学习笔记(六):cv2.resize函数的介绍
这篇文章介绍了OpenCV库中cv2.resize函数的使用方法,包括其参数、插值方式选择以及实际代码示例。
221 1
Opencv学习笔记(六):cv2.resize函数的介绍
|
1月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
309 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
3月前
|
计算机视觉
OpenCV滑动条(createTrackbar()函数)如何在多个维度进行同步调整?
这篇文章介绍了如何在OpenCV中使用`createTrackbar()`函数创建多个滑动条以同步调整图像的多个维度(如亮度和对比度),通过将不同滑动条的回调函数合并为一个,确保它们在同一图像基础上进行调整。
|
4月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
5月前
|
存储 Cloud Native Linux
OpenCV图像翻转和旋转
OpenCV图像翻转和旋转
|
5月前
|
算法 计算机视觉
【Qt&OpenCV 图像旋转getRotationMatrix2D】
【Qt&OpenCV 图像旋转getRotationMatrix2D】
37 0
|
6月前
|
监控 算法 Serverless
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
141 0
|
6月前
|
人工智能 监控 API
OpenCV这么简单为啥不学——1.11、蓝背景证件照替换白色或红色
OpenCV这么简单为啥不学——1.11、蓝背景证件照替换白色或红色
81 0