OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)
1. 学习目标
- 学习图像的平移矩阵;
- 学习 OpenCV 图像平移函数。
2. 图像的平移矩阵
平移是物体位置在水平和垂直方向的移动。
- 像素点 (x,y) 沿 x 轴平移 dx、沿 y 轴平移 dy,公式:
3. 图像平移函数
3.1 cv.warpAffine() 函数使用
cv.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst
3.2 参数说明
参数 | 说明 |
---|---|
src | 表示输入图像。 |
M | 表示变换矩阵,2行3列。 |
dsize | 表示输出图像的大小,二元元组 (width, height)。 |
dst | 表示变换操作的输出图像,可选项。 |
flags | 表示插值方法,整型(int),可选项。 |
borderMode | 表示边界像素方法,整型(int),可选项,默认值为 cv.BORDER_REFLECT。 |
borderValue | 表示边界填充值,可选项,默认值为 0(黑色填充)。 |
3.3 flags 值说明
值 | 说明 |
---|---|
cv.INTER_LINEAR | 表示线性插值,默认选项。 |
cv.INTER_NEAREST | 表示最近邻插值。 |
cv.INTER_AREA | 表示区域插值。 |
cv.INTER_CUBIC | 表示三次样条插值。 |
cv.INTER_LANCZOS4 | 表示Lanczos 插值。 |
4. 图像平移实例
4.1 实例代码
import cv2 as cv
import numpy as np# 图像平移
def image_translation(src, tx, ty):h,w,c = src.shapeM = np.float32([[1,0,tx],[0,1,ty]])img = cv.warpAffine(src,M,(w,h))return imgif __name__ == "__main__":img = cv.imread("./images/lena.jpg")cv.imshow("origin", img)img_tran = image_translation(img, 100, 50)cv.imshow("translation", img_tran)cv.waitKey(0)cv.destroyAllWindows()
4.2 效果
5. 总结
- 变换矩阵 M 是 np.float32 类型 ndarray 二维数组(2行*3列)。
- 变换矩阵 M = np.float32([[1,0,tx],[0,1,ty]]),tx 表示向右移动的像素值,ty 表示向下移动的像素值;注意:如果值是负数表示向相反方向移动的像素值。
- dsize 输出图像的大小格式为元组 (width, height)。
OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)相关推荐
- OpenCV-Python学习(19)—— OpenCV 图像几何变换之图像缩放(cv.warpAffine、cv.resize)
1. 学习目标 学习图像的缩放矩阵: 学习 OpenCV 图像缩放函数 cv.resize 和 cv.warpAffine. 2. 图像的缩放矩阵 缩放是物体在 x 轴和 y 轴的缩放比例. fx 是 ...
- Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)
一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...
- 图像几何变换--缩放、平移、镜像、旋转
目录 一.图像几何变换基础 二.平移 三.缩放 四.旋转 五.镜像 六.复合变换 七.变换矩阵总结 八.完整代码 一.图像几何变换基础 1.图像的几何变换是指原始图像按照需要产生大小.形状和位置的变化 ...
- opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并
基础部分传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) Numpy操作图像 1.遍历图像每一 ...
- Python学习笔记 | opencv图像处理(一)
1. 计算机数据--图片 1.1 图片信息解读 利用计算机处理图像信息,我们必须要先了解计算机如何阅读图片信息. 我们都知道,在计算机的世界中只存在0和1两个元素,因此,为了能让计算机读懂图片,我们需 ...
- opencv python教程简书_OpenCV-Python教程:27.图像转换
理论 傅里叶变换用来分析多种过滤器的频率特征.对于图片,2D离散傅里叶变换(DFT)用来找频率范围.一个快速算法叫快速傅里叶变换(FFT)用来计算DFT. 对于正弦信号,x(t) = Asin(2πf ...
- [Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- opencv (一) 学习通过OpenCV图形界面及基础
opencv 学习通过OpenCV图形界面基础 用的函数有 cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText() 常用参数 ...
- 【OpenCV3】图像旋转与平移——cv::warpAffine()详解
图像旋转和平移是图像处理中常用的一种操作,opencv2和opencv3中对图像的旋转和平移都是通过仿射变换函数cv::warpAffine()来实现的. 1.图像的旋转 图像的旋转具体实现分为两步: ...
最新文章
- 多所高校官宣硕士扩招!最大扩招增幅近60%
- java的单例设计模式
- sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解
- HTML5学习笔记(一):HTML简介
- 允许服务与桌面交互_vivo 正式推出 Origin OS,融合自然设计与全新交互
- java多线程总结(二)
- SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
- 2022.9.19 论文笔记
- matlab中多项式拟合polyfit()和插值函数polyval()的基础使用方法和历程
- 【Windows Server 2019】活动目录 (Active Directory) ——创建、删除和管理对象、容器和组织单位(OU)
- Win11如何查看自己电脑的显卡信息?Win11查看显卡信息的方法
- python数字类型中包含了哪三种类型_Python数字类型中包含了________、________和_________三种类型。...
- zt中俄两军炮兵的差距
- 报错 SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse (<anonymous>)的解决方法
- html鼠标悬停图片释义文字消失,鼠标悬停,在图片上显示文字~
- 生物技术的计算机应用系统,生物技术在计算机发展中的作用.pdf
- 七个习惯之五:知彼解己
- 网易BOBO:在互联网上建设娱乐梦工场
- 中职微课计算机应用基础,高职计算机应用基础微课设计
- MATLAB练习题(数学实验作业)