三点映射变换

简介: 【5月更文挑战第15天】三点映射变换。

三点映射变换
三点映射变换会将图像转换为任意的平行四边形,cv2.getAffineTransform()函数用于计算其转换矩阵,基本格式如下。
m = cv2.getAffineTransform(src, dst)
参数说明如下。
src为原图像中3个点的坐标。
dst为原图像中3个点在目标图像中的对应坐标。
cv2.getAffineTransform()函数将src和dst中的3个点作为平行四边形左上角、右上角和左下角的3个点,按原图和目标图像与3个点之间的坐标关系计算所有像素的转换矩阵。
示例代码如下。

图像的三点映射变换

import cv2
import numpy as np
img=cv2.imread('bee.jpg') #读取图像
cv2.imshow('img',img) #显示图像
height=img.shape[0] #获得图像高度
width=img.shape[1] #获得图像宽度
dsize=(width,height)
src=np.float32([[0,0],[width-10,0],[0,height-1]]) #取原图像中的3个点
dst=np.float32([[50,50],[width-100,80],
[100,height-100]]) #设置3个点在目标图像中的坐标
m = cv2.getAffineTransform(src, dst) #创建转换矩阵
img2=cv2.warpAffine(img,m,dsize) #执行转换
cv2.imshow('imgThreePoint',img2) #显示图像
cv2.waitKey(0)

目录
相关文章
|
7月前
|
PHP 计算机视觉
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
258 0
|
10月前
|
算法
几何原本
几何原本
130 8
|
编解码 算法 数据可视化
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
137 0
|
10月前
|
存储 搜索推荐 Java
图计算中的顶点和边是什么?请解释其概念和作用。
图计算中的顶点和边是什么?请解释其概念和作用。
268 0
|
存储 数据可视化 数据挖掘
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
|
人工智能 数据建模 计算机视觉
矩阵和数据之间的关系 | 学习笔记
快速学习矩阵和数据之间的关系
矩阵和数据之间的关系 | 学习笔记
|
算法
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
167 0
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
|
机器学习/深度学习 算法 计算机视觉
【物理应用】基于El-centro地震波作用下隔震与非隔震支座下的顶层位移、速度、加速度的对比情况附matlab代码
【物理应用】基于El-centro地震波作用下隔震与非隔震支座下的顶层位移、速度、加速度的对比情况附matlab代码
【物理应用】基于El-centro地震波作用下隔震与非隔震支座下的顶层位移、速度、加速度的对比情况附matlab代码