OpenCV 图像旋转、平移、缩放操作代码
作者:双子座断点 发布时间:2022-11-04 00:34:40
标签:OpenCV,图像,旋转,平移,缩放
本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize()、旋转 cv2.flip()、平移 cv2.warpAffine()等操作。
1 缩放图片
缩放就是调整图片的大小,使用cv2.resize()函数实现缩放,可以按照比例缩放,也可以按照指定的大小缩放:
也可以指定缩放方法为线性插值INTER_LINEAR。
放过程中有五种插值方式:
cv2.INTER_NEAREST 最近邻插值cv2.INTER_LINEAR 线性插值cv2.INTER_AREA 基于局部像素的重采样,区域插值cv2.INTER_CUBIC 基于邻域4x4像素的三次插值cv2.INTER_LANCZOS4 基于8x8像素邻域的Lanczos插值
import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
# 从RGB色彩空间转换到HSV色彩空间
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 按照指定的宽度、高度缩放图片
res = cv2.resize(image, (960, 540))
# 按照比例缩放,如x,y轴均放大一倍
res2 = cv2.resize(image, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
cv2.imshow("image", image)
cv2.imshow("res2", res2)
cv2.waitKey(0)
cv2.destroyAllWindows()
2 翻转图片
镜像翻转图片,可以用cv2.flip()
函数:
其中,参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。
import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
# 从RGB色彩空间转换到HSV色彩空间
# image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
dst = cv2.flip(image, 0)
cv2.imshow("image", image)
cv2.imshow("res2", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.1 垂直翻转
dst = cv2.flip(image, 0)
2.2 水平翻转
dst = cv2.flip(image, 1)
2.3 水平垂直翻转
dst = cv2.flip(image, -1)
3 平移图片
要平移图片,我们需要定义下面这样一个矩阵,tx,ty是向x和y方向平移的距离:
平移是用仿射变换函数cv2.warpAffine()
实现的:
import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
# 获得图片的高、宽
rows, cols = image.shape[:2]
# 定义平移矩阵,需要是numpy的float32类型 x轴平移100,y轴平移500
M = np.float32([[1, 0, 100], [0, 1, 200]])
# 用仿射变换实现平移
dst = cv2.warpAffine(image, M, (cols, rows))
# cv2.imshow("image", image)
cv2.imshow("res2", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
来源:https://blog.csdn.net/qq_37529913/article/details/128451093


猜你喜欢
- Fabric 是使用 Python 开发的一个自动化运维和部署项目的一个好工具,可以通过 SSH 的方式与远程服务器进行自动化交互,例如将本
- 原理就是先声明常量,包括列数,行数,各列的属性,然后在程序的其它过程用这些常量来控制Cells。非常方便,便于修改和移植! 以下为窗体整体代
- 本篇文章主要介绍了python OpenCV学习笔记之绘制直方图的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来
- 本文实例讲述了golang简单获取上传文件大小的方法。分享给大家供大家参考,具体如下:package mainimport ( &
- 一、 下载MySQLMysql官网下载地址:MySQL :: Download MySQL Installer (Archived Vers
- 本文实例讲述了wxpython中自定义事件的实现与使用方法。分享给大家供大家参考,具体如下:创建自定义事件的步骤:① 定义事件类,该事件类必
- 对于一个net开发这爬虫真真的以前没有写过。这段时间开始学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬
- 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT som
- 前言利用Python的ffmpy库提取视频中的音频。本文提供工具类代码。环境依赖需要安装ffmpy,安装指令:pip install ffm
- 今天来认识一下两个我不太常用到的html标签:sub标记和sup标记。定义和用法:<sub> 标签可定义下标文本。<sup
- 批量修改linux服务器密码,同时生成execl表格#!/usr/bin/env python#coding:utf8#随机生成自定义长度密
- CREATE DATABASE `ct` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_c
- 可以结合sp_MSforeachdb再遍历所有用户数据库查看所有表的尺寸大小,注意它的参数@sql不能超过nvarchar(2000),这里
- 不得不承认,傲游在用户体验方面是做得比较好的,所以它的用户群非常大。也正因为如此,它的某些不好的特性也造成了开发人员不可忽略的浏览器兼容问题
- 登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若哪里有误,请见谅。所用语言:php数据库 :mysql本次实现功
- 简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果。代码如下:import cv2 as
- 导读本篇博客我们将全面了解 Flask 中关于请求的相关设置,开始前你需要先配置 Flask 的基础框架。from flask import
- networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。图是由顶点、边和可选的属性构成的数据结构,顶点表示数据
- 折线图,柱状图,饼图用于数据展示,更直观的分析数据。实现绘制的效果图如下代码 很简单,如下import matplotlib.pyplot
- import numpy as npimport sysdef conv_(img, conv_filter): filter_