当前位置:网站首页>OpenCV 透视变换
OpenCV 透视变换
2022-08-03 12:49:00 【我今年十六岁】
目录
一:OpenCV透视变换的概念
仿射变换是图像基于3个固定顶点的变换,接下来学习的透视变换是4个固定顶点的变换
二:透视变换工作原理
透视变换(Perspective Transformation)的本质是将图像投影到一个新的视平面,其通用变换公式为:
(u,v)为原始图像像素坐标,(x=x’/w’,y=y’/w’)为变换之后的图像像素坐标。透视变换矩阵图解如下:
仿射变换(Affine Transformation)可以理解为透视变换的特殊形式。透视变换的数学表达式为:
所以,给定透视变换对应的四对像素点坐标,即可求得透视变换矩阵;反之,给定透视变换矩阵,即可对图像或像素点坐标完成透视变换,如下图所示:
三:findHomography函数
findHomography: 计算多个二维点对之间的最优单映射变换矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法。
函数功能:找到两个平面之间的变换矩阵。
函数参数:
Mat cv::findHomography ( InputArray srcPoints,
InputArray dstPoints,
int method = 0,
double ransacReprojThreshold = 3,
OutputArray mask = noArray(),
const int maxIters = 2000,
const double confidence = 0.995
)
四:warpPerspective函数
函数原型:
void warpPerspective(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())
函数参数说明:
图中红点即为固定顶点,在变换先后固定顶点的像素值不变,图像整体则根据变换规则进行变换
同理,透视变换是图像基于4个固定顶点的变换,如图所示:
五:getPerspectiveTransform函数
函数原型:
C++方式一:Mat getPerspectiveTransform(InputArray src, InputArray dst)
C++方式二:Mat getPerspectiveTransform(const Point2f src[], const Point2f dst[])
函数参数说明:
src – 源图像中四边形顶点的坐标
dst – 目标图像中相应四边形顶点的坐标。
该函数计算透视变换的3乘3矩阵,以便实现以下计算:
边栏推荐
- Use %Status value
- The Yangtze river commercial Banks to the interview
- Golang sync.WaitGroup
- An animation optimization of shape tween and optimization of traditional tweening
- 期货开户中常见问题汇总
- An工具介绍之3D工具
- JS get browser type
- IronOS, an open source system for portable soldering irons, supports a variety of portable DC, QC, PD powered soldering irons, and supports all standard functions of smart soldering irons
- Basic principle of the bulk of the animation and shape the An animation tip point
- Unsupervised learning KMeans notes and examples
猜你喜欢
VLAN 实验
HCIP第十五天笔记(企业网的三层架构、VLAN以及VLAN 的配置)
An动画优化之传统引导层动画
An animation optimization of traditional guide layer animation
Graphic animation and button animation of an animation basic component
基于php家具销售管理系统获取(php毕业设计)
An introduction to the camera
An introduction to 3D tools
【R】用grafify搞定统计绘图、方差分析、干预比较等!
How does Filebeat maintain file state?
随机推荐
shell编程之条件语句
Image fusion GAN-FM study notes
基于php旅游网站管理系统获取(php毕业设计)
Chapter 15 Source Code File REST API Introduction
Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法
An动画优化之遮罩层动画
层次分析法
五、函数的调用过程
Redis 6 的多线程
查看GCC版本_qt版本
B站回应“HR 称核心用户都是 Loser”:该面试官去年底已被劝退,会吸取教训加强管理
R language ggplot2 visualization: use the patchwork bag plot_layout function will be more visual image together, ncol parameter specifies the number of rows, specify byrow parameters configuration dia
VLAN 实验
Yahoo!Answers - data set
Golang 通道 channel
Random forest project combat - temperature prediction
An动画基础之按钮动画与基础代码相结合
An工具介绍之摄像头
Five, the function calls
Image fusion DDcGAN study notes