一、仿射变换 [图像预处理]

1、介绍

图像的仿射变换涉及到图像的形状位置角度的变化,是深度学习预处理中常用的功能,仿射变换主要是对图像的缩放、旋转、翻转和平移等操作的组合。注意:变换矩阵中是6个点,所以变换矩阵中一项就是一个坐标。

注意:图像的坐标,宽度是X方向,高度是Y方向

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
from matplotlib import font_manager #中文显示字体设置#设置字体的方式,fname指定为系统中可使用字体的路径
my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/STHUPO.TTF")#1、读取图像
img = cv.imread("./images/gyy.jpg")#2、仿射变换
rows, cols = img.shape[:2]
#2.1创建变换矩阵
pst1 = np.float32([[50,50], [200,50], [50, 200]])
pst2 = np.float32([[100,100], [200,50], [100,250]])
M = cv.getAffineTransform(pst1, pst2)
#2.2完成仿射变换
dst = cv.warpAffine(img, M, (cols, rows))#3、图像显示
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10,8), dpi=100)
axes[0].imshow(img[:,:,::-1]) #通道转换
axes[0].set_title("原图", fontproperties=my_font)
axes[1].imshow(dst[:,:,::-1])
axes[1].set_title("仿射后结果", fontproperties=my_font)
plt.show()

二、透射变换 [图像预处理]

透射变换是视角变化的结果,是指利用透射中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。

它的本质是将图像投影到一个新的视平面,其通用变换公式为:

在opencv中,我们要找到四个点,其中任意三个不共线,然后获取变换矩阵T,再进行透射变换,通过函数cv.getPerspectiveTransform找到变换矩阵,将cv.warpPerspective应用于此3x3变换矩阵

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
from matplotlib import font_manager#设置字体显示
my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/STHUPO.TTF")#1、读取图像
img = cv.imread("./images/gyy.jpg")#2、透射变换
rows,cols = img.shape[:2]
#2.1创建变换矩阵
pst1 = np.float32([[56,65], [368,52], [28,387], [389,390]])
pst2 = np.float32([[100,145], [300,100], [80,290], [310,300]])
#2.2获取透视变换矩阵
T = cv.getPerspectiveTransform(pst1, pst2)
#2.3进行变换
dst = cv.warpPerspective(img, T, (cols, rows))#3、图像显示
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10,8), dpi=100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title("原图", fontproperties=my_font)
axes[1].imshow(dst[:,:,::-1])
axes[1].set_title("透射后结果", fontproperties=my_font)
plt.show()

三、图像金字塔

图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。

图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。

金字塔的底部是待处理的图像的高分辨率表示,而顶部是低分辨率的近似,层级越高,图像越小,分辨率越低。

1、API介绍

cv.pyrUp(img) 对图像进行上采样
cv.pyrDown(img) 对图像进行下采样

2、案例

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
#1、读取图片
img = cv.imread("./images/box.png")#2、进行图像采样
up_img = cv.pyrUp(img) #上采样操作
down_img = cv.pyrDown(img) #下采样操作#3、图像显示
cv.imshow('enlarge', up_img)
cv.imshow('original', img)
cv.imshow('shrink', down_img)
cv.waitKey(0)
cv.destroyAllWindows()

[图像几何变换]——图像的仿射变换、透射变换及图像金字塔相关推荐

  1. 【python】图像映射:单应性变换与图像扭曲

    [python]图像映射:单应性变换与图像扭曲 单应性变换(Homography) 图像扭曲(仿射变换) 图中图 分段仿射扭曲 单应性变换(Homography) 单应性变换(Homography)即 ...

  2. OpenCV_04 几何变换:图像缩放+图像平移+图像旋转+仿射变换+透射变换+图像金字塔

    1 图像缩放 缩放是对图像的大小进行调整,即使图像放大或缩小. API cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR) 参 ...

  3. 基于MATLAB的仿射变换/透射变换/道路检测/车牌检测

    仿射变换即把三维物体所成的二维图像进行还原.话不多说,直接上效果: 1.平面翻转 可以使用鼠标任意选取四个点,然后将这四个点变换成矩形.运行结果如下: 2.基于霍夫变换 3.基于仿射变换 先来看另一组 ...

  4. 单应性矩阵和仿射变换_仿射变换透射变换单应性矩阵

    答:使用perspectiveTransform(). findHomography 函数是求两幅图像的单应性矩阵,它是一个3*3的矩阵,但这里的单应性矩阵和3D重建中的单应性矩阵(透视矩阵3*4)是 ...

  5. OpenCV图像几何变换——转置,镜像,倒置

    图像几何变换方法之--remap使用. 源图像 一.图像转置 #include <iostream> #include <opencv2/opencv.hpp> using n ...

  6. [图片校准(矫正)]——透射变换应用

    如果想要对图像进行校准,那么透射变换是非常有效的变换方法. 透射变换的定义如下:将图像投影到一个新的视平面,通常也成为投影映射. 详情参考链接:透射变换介绍 1.举例说明 直观的来看,透视变换的作用就 ...

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

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

  8. OpenCV图像几何变换专题(缩放、翻转、仿射变换及透视)【python-Open_CV系列(五)】

    OpenCV图像几何变换专题(缩放.翻转.仿射变换及透视)(python为工具) [Open_CV系列(五)] 文章目录 准备图片 1. 缩放 cv2.resize()方法 2. 翻转 cv2.fli ...

  9. Python图像处理丨带你掌握图像几何变换

    摘要:本篇文章主要讲解图像仿射变换和图像透视变换,通过Python调用OpenCV函数实. 本文分享自华为云社区<[Python图像处理] 十二.图像几何变换之图像仿射变换.图像透视变换和图像校 ...

最新文章

  1. SQL中获取刚插入记录时对应的自增列的值
  2. swift集成alamofire的简单封装
  3. webClient 利用代理连接Rss资源
  4. Shiro 权限框架使用总结
  5. LibreOJ #6002. 「网络流 24 题」最小路径覆盖
  6. PostgreSQL 从源码找出哪些操作需要超级用户权限 - 阿里云rds_superuser和superuser有什么区别...
  7. java编写流星_纯Java代码实现流星划过天空
  8. DeepFM调参总结
  9. 九尾之火---算法生成的动画图像
  10. MATLAB函数 zp2tf详解
  11. Perl语言学习总结
  12. 终极算法:机器学习和人工智能如何重塑世界
  13. 在windows server 2008 r2上安装nokia pc 套件
  14. 视频教程-QQ机器人--基于酷Q开发7精讲-C/C++
  15. 移动 PC 的数据加密工具包 - 安全分析
  16. 2021-07-01 Leetcode题解:545,915,1647,722
  17. 单链表的头插法与尾插法详解
  18. 单层MoS2和WS2晶体/Zn(Ⅱ)-PDA诱导合成二维连续稳定ZIF-8膜/新型大孔的二维结晶聚酰亚胺COFs(PI-COFs)
  19. webstorm11 破解办法
  20. css3动画 提交成功圆圈画对勾

热门文章

  1. 六大原则之依赖倒转(倒置)原则
  2. 20140719中国互联网公司市值排名TOP20
  3. 史上最详细的HashMap红黑树解析
  4. 物通博联为注塑机远程监控提供物联网解决方案
  5. ThinkpadT420加装上网卡
  6. 任务01-信息编码:纯⽩⾊的bmp图⽚ 用Hex Editor Neo画一个“C
  7. 马克思 第一章 世界的物质性及其发展规律
  8. 百度地图API基本使用(一)
  9. 【GD32F310开发板试用】Contiki-NG在GD32F310的移植
  10. 搭建ARM交叉编译环境