首页 > 编程语言 >opencv-python 单应性矩阵的应用

opencv-python 单应性矩阵的应用

时间:2023-08-09 21:45:30浏览次数:50  
标签:单应性 img python 矩阵 cv2 变换 opencv np img1

单应性(Homography)变换:可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。

单应性矩阵在 图像校正、图像拼接、相机位姿估计、视觉SLAM等都有应用。

单应性矩阵主要涉及两个函数:

1  findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]]) -> H, mask

( M = cv2.getPerspectiveTransform(src,dst) 该函数也可以获取透视变换矩阵)

计算多个二维点对之间的最优单应性矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法。函数功能:找到两个平面之间的转换矩阵。

参数说明:

srcpoints: 是源平面中的坐标矩阵,dstpoints: 是目标平面的坐标矩阵,类型是CV_32FC2或者float32型。

method: 是计算单应性矩阵的方法:0 -- 利用所有点的常规方法;RANSAC -- 随机抽样一致性方法;LMEDS -- 最小中指鲁棒算法 ;RHO - PROSAC -- 基于PROSAC的鲁棒算法。

 ransacReprojThreshold:将点对视为内点的最大允许重投影错误阈值(仅用于RANSAC和RHO方法),该参数通常设置在1到10的范围内。

mask:可选输出掩码矩阵,通常由鲁棒算法(RANSAC或LMEDS)设置。请注意,输入掩码矩阵是不需要设置的。

maxIters:RANSAC算法的最大迭代次数,默认为2000.

confidence:可信度,取值0-1.

2  warpPerspective(src, H, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst

( dst = cv2.perspectiveTransform(pts,H) 该函数可以根据输入的坐标获取透视变换后的坐标)

通过输入变换矩阵得到透视图片。

参数说明:

src 输入图片;dst 输出图片。
M 输入的透视变换矩阵,大小是3*3
dsize 输出图片的大小
flags 插值方法(INTER_LINEAR或INTER_NEAREST)与可选标志WARP_INVERSE_MAP的组合,将M设置为逆变换(

标签:单应性,img,python,矩阵,cv2,变换,opencv,np,img1
From: https://www.cnblogs.com/libai123456/p/17618061.html

相关文章

  • Python基础day63 Django分页和cookie、session
    推导分页的原理分页:当我们要展示的数据特别多的时候,一页展示不完,这个时候我们需要把要展示的数据分成多页展示分页中需要的几个参数:1.总数据有多少条2.每页展示多少条数据(自己规定的20)3.一共展示多少页4.总页数=总数据量/每页展示多少条数据5.当前第几页(前端传过去......
  • 【总结一下|PTA】浙大版《Python 程序设计》题目集
    前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python学习经验:扎实基础+多做笔记+多......
  • Centos7安装Python3.8
    Centos7安装Python3.8Centos7安装Python3.8安装编译相关工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-develyum-yin......
  • python语言--------csv模块将txt文件转换为表格csv格式
    上代码:importcsvcsvFile=open("C:/Users/Administrator/Desktop/1.csv",'w',newline='',encoding='utf-8')writer=csv.writer(csvFile)csvRow=[]f=open("C:/Users/Administrator/Desktop/np.txt",'r'......
  • python 实现 pdf 转为图片
    1importfitz2importos3fromPILimportImage45defconvert_pdf2img(file_relative_path):67page_num=18filename=file_relative_path.split('.')[-2]9ifnotos.path.exists(filename):10os.makedirs(filen......
  • oFono/dbus-python环境搭建以及简单认识
    关键词:D-Bus、oFono、dbus-python、ofonod等等。1.oFono环境搭建(Buildroot+QEMU)和启动1.1Buildroot配置ofonod+dbus-python配置oFono:Targetpackages->Networkingapplication->connman->enableofonosupport使能Python3:Targetpackages->Interpreterlanguage......
  • Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
    全文链接:https://tecdat.cn/?p=33398原文出处:拓端数据部落公众号金融市场的股票价格时间序列分析一直以来都是投资者和研究者关注的主题之一。准确预测股票价格的趋势对于制定有效的投资策略和决策具有重要意义。因此,许多研究人员使用各种统计方法和模型来分析和预测股票价格的......
  • Python | 函数、数据容器
    1.函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段。1.1简单案例重复使用计算字符串的长度str1="heystar"str2="python"str3="abcd"count=0for_instr1:count+=1print(f"字符串{str1}的长度是:{count}")count=0for_instr2:coun......
  • Python潮流周刊#2:Rust 让 Python 再次伟大
    这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、Python修饰器的函数式编程介绍了装饰器的实现原理、带参装饰器、多装饰器、类装饰器和几个典型的示例。文章发布于2014年,代码用......
  • Python潮流周刊#5:并发一百万个任务要用多少内存?
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、并发一百万个任务要用多少内存?(英文)文中测试了主流的编程语言(Rust、Go、Java、C#、Python、Node.js和Elixir),依次运行......