Python OpenCV crosscheck交叉特征点出现错误解决办法
在PythonOpenCV使用URF进行特征点检测,然后使用下面代码进行特征点匹配出现错误。
bf = cv.BFMatcher(cv.NORM_HAMMING, crossCheck=True)
matches = bf.match(ds1, ds2)
error: OpenCV(3.4.2) C:\projects\opencv-python\opencv\modules\core\src\batch_distance.cpp:245: error: (-215:Assertion failed) (type == 0 && dtype == 4) || dtype == 5 in function 'cv::batchDistance'
问题原因:
特征点描述子数据格式出现问题,请看下面函数对不同特征点检测算法使用的数据格式
首先是cv2.BFMatcher(normType, corssCheck)函数。它有两个参数。
第一个参数是用来指定要使用的距离测试类型。默认值为 cv2.Norm_L2。这很适合 SIFT 和 SURF 等(cv2.NORM_L1 也可以)。对于使用二进制描述符的 ORB,BRIEF,BRISK算法等,要使用cv2.NORM_HAMMING,这样就会返回两个测试对象之间的汉明距离。
第二个参数是布尔变量 crossCheck,默认值为 False。如果设置为True,匹配条件就会更加严格,只有到 A 中的第 i 个特征点与 B 中的第 j 个特征点距离最近,并且 B 中的第 j 个特征点到 A 中的第 i 个特征点也是最近(A 中没有其他点到 j 的距离更近)时才会返回最佳匹配(i,j)。也就是这两个特征点要互相匹配才行。
下面为正确代码:
bf = cv.BFMatcher(cv.NORM_L1, crossCheck=True)
matches = bf.match(ds1, ds2)
matches = sorted(matches, key=lambda x:x.distance)
img2 = cv.drawMatches(leftgray, kp1, rightgray, kp2, matches[:50],None,flags = 2)
Python OpenCV crosscheck交叉特征点出现错误解决办法相关推荐
- python 导入magenta失败,报AttributeError错误解决办法
如图: 1.第一次报错信息: AttributeError: module 'tensorflow' has no attribute 'python_io 根据提示路径,打开note_sequenc ...
- 安装kilo版本openstack-dashboard时出现的python compress command not found错误解决办法
2019独角兽企业重金招聘Python工程师标准>>> 安装openstack-dashboard时出现的python compress command not found错误解决办 ...
- Python headers not found错误解决办法
安装Python扩展时,Configure error: Python headers not found错误解决办法 在安装spot时,遇到#include "Python.h" ...
- 因为返回有true ajax提示进入错误,jquery ajax中error返回错误解决办法
转自:https://www.jb51.net/article/72198.htm 进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个 ...
- linux编译安装的报错,linux编译安装时常见错误解决办法
This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html ...
- java执行python返回null_[转]java调用python脚本以及通过Process.waitFor()直接调用python模块返回错误代码1的一种解决办法...
常见的java调用python脚本方式 通过jython提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 通过jython提供的类库实现 通过jython实现的话,我 ...
- 邮箱名不允许服务器响应,C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法...
由于项目需要,要为客户提供一个定期发送邮件的程序.本来原来自己还写过,但新写的程序一晚上也没通过测试,总是提示"不允许使用邮箱名称.服务器响应为..." 经过在网上搜索查找解决办法 ...
- SyntaxError :invalid syntax错误解决办法
今天学习了python,然而刚开始就出了一个SyntaxError :invalid syntax错误,明明代码没有一点问题,可是每次运行都会显示 "SyntaxError: invalid ...
- Win10应用程序无法正常启动0xc0000018错误解决办法
2019独角兽企业重金招聘Python工程师标准>>> Win10应用程序无法正常启动0xc0000018错误解决办法,在使用Win10的过程中有时当打开一款软件时会弹出下面的错误消 ...
最新文章
- python xlrd读取excel所有数据_python读取excel进行遍历/xlrd模块操作
- Attic——删除重复数据的备份程序
- 《Groovy语言规范》-语法(三)
- Windows下Core Audio APIs的使用简介
- 1027:输出浮点数
- LeetCode 110 Balanced Binary Tree(平衡二叉树)(*)
- 整个csdn网站处于不死不活的状态
- VS中项目的循环引用的问题
- selenium pydev环境配置中IEdriver server失败
- 基于麻雀算法优化的Tsallis相对熵图像多阈值分割 -附代码
- 2022 年 3 个推荐 AI 聊天机器人平台 「免费和付费」
- Python 根据出生日期判断星座
- Unity 反转法线,在 Hierarchy 视图对象的快捷菜单中增加 Flip Mesh Normals(反转网格法线)项...
- PDFium使用分享
- Pycharm2017补丁破解
- 热拉登陆找不到服务器,在线服务器服务器路径.ppt
- 软件和资源收集(四):图库、作图、音乐、视频
- 部署keepalive+lvs多master节点高可用
- 【C++进阶】一、继承(总)
- java 读取excel2007 内存不足_内存不足错误 – 写入Excel时的Java堆空间
热门文章
- 【热门收藏】iOS开发人员必看的精品资料(100个)
- 微软语言包实现汉字转拼音
- ta点读笔客户端_点读笔到底哪支好?12款点读笔评测:看完不再稀里糊涂
- import dlib,报错:ImportError: libcublas.so.10.0: cannot open shared object file: No such file or direc
- linux Mint桌面美化
- 检查两个单词是否为变位词(Anagram)
- jmeter实现UI自动化demo
- 机器人程序设计入门(C++/Arduino/ROS)(转载2020版)
- Linux用命令修改dpi,linux下高分辨率屏幕设置
- html 实时计算字数,JavaScript 实现textarea限制输入字数, 输入框字数实时统计更新,输入框实时字数计算移动端bug解决...