1. 学习目标

  1. 学习图像的平移矩阵;
  2. 学习 OpenCV 图像平移函数。

2. 图像的平移矩阵

平移是物体位置在水平和垂直方向的移动。

  1. 像素点 (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. 总结

  1. 变换矩阵 M 是 np.float32 类型 ndarray 二维数组(2行*3列)
  2. 变换矩阵 M = np.float32([[1,0,tx],[0,1,ty]]),tx 表示向右移动的像素值,ty 表示向下移动的像素值;注意:如果值是负数表示向相反方向移动的像素值。
  3. dsize 输出图像的大小格式为元组 (width, height)。

OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)相关推荐

  1. OpenCV-Python学习(19)—— OpenCV 图像几何变换之图像缩放(cv.warpAffine、cv.resize)

    1. 学习目标 学习图像的缩放矩阵: 学习 OpenCV 图像缩放函数 cv.resize 和 cv.warpAffine. 2. 图像的缩放矩阵 缩放是物体在 x 轴和 y 轴的缩放比例. fx 是 ...

  2. Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)

    一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...

  3. 图像几何变换--缩放、平移、镜像、旋转

    目录 一.图像几何变换基础 二.平移 三.缩放 四.旋转 五.镜像 六.复合变换 七.变换矩阵总结 八.完整代码 一.图像几何变换基础 1.图像的几何变换是指原始图像按照需要产生大小.形状和位置的变化 ...

  4. opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并

    基础部分传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) Numpy操作图像 1.遍历图像每一 ...

  5. Python学习笔记 | opencv图像处理(一)

    1. 计算机数据--图片 1.1 图片信息解读 利用计算机处理图像信息,我们必须要先了解计算机如何阅读图片信息. 我们都知道,在计算机的世界中只存在0和1两个元素,因此,为了能让计算机读懂图片,我们需 ...

  6. opencv python教程简书_OpenCV-Python教程:27.图像转换

    理论 傅里叶变换用来分析多种过滤器的频率特征.对于图片,2D离散傅里叶变换(DFT)用来找频率范围.一个快速算法叫快速傅里叶变换(FFT)用来计算DFT. 对于正弦信号,x(t) = Asin(2πf ...

  7. [Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. opencv (一) 学习通过OpenCV图形界面及基础

    opencv 学习通过OpenCV图形界面基础 用的函数有 cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText() 常用参数 ...

  9. 【OpenCV3】图像旋转与平移——cv::warpAffine()详解

    图像旋转和平移是图像处理中常用的一种操作,opencv2和opencv3中对图像的旋转和平移都是通过仿射变换函数cv::warpAffine()来实现的. 1.图像的旋转 图像的旋转具体实现分为两步: ...

最新文章

  1. 多所高校官宣硕士扩招!最大扩招增幅近60%
  2. java的单例设计模式
  3. sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解
  4. HTML5学习笔记(一):HTML简介
  5. 允许服务与桌面交互_vivo 正式推出 Origin OS,融合自然设计与全新交互
  6. java多线程总结(二)
  7. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
  8. 2022.9.19 论文笔记
  9. matlab中多项式拟合polyfit()和插值函数polyval()的基础使用方法和历程
  10. 【Windows Server 2019】活动目录 (Active Directory) ——创建、删除和管理对象、容器和组织单位(OU)
  11. Win11如何查看自己电脑的显卡信息?Win11查看显卡信息的方法
  12. python数字类型中包含了哪三种类型_Python数字类型中包含了________、________和_________三种类型。...
  13. zt中俄两军炮兵的差距
  14. 报错 SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse (<anonymous>)的解决方法
  15. html鼠标悬停图片释义文字消失,鼠标悬停,在图片上显示文字~
  16. 生物技术的计算机应用系统,生物技术在计算机发展中的作用.pdf
  17. 七个习惯之五:知彼解己
  18. 网易BOBO:在互联网上建设娱乐梦工场
  19. 中职微课计算机应用基础,高职计算机应用基础微课设计
  20. MATLAB练习题(数学实验作业)

热门文章

  1. MS WORD 无法修改标题级别的解决方案
  2. 学习Python数据分析,需要几个阶段?
  3. ERDAS2015RGB颜色分类法水体提取
  4. 最高百万年薪,全国多家知名互联网/游戏公司热招 Cocos 人才丨9月岗位
  5. 函数function的使用方法
  6. python怎么判断真假_Python不超过10行代码就可实现人脸识别,教你辨别真假
  7. 用计算机弹起风了歌词,起风了歌词(买辣椒也用券演唱)
  8. 这次把怎么做好一个PPT讲清-动画篇
  9. ssm校园社团平台毕业设计源码251554
  10. 判断一个月之前的是星期几