Python3 TypeError: Required argument ‘outImg‘ (pos 3) not found

2023-11-08

 

 

问题:在用python3使用img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,flags=2)的时候,可能会产生错误:TypeError: Required argument 'outImg' (pos 6) not found

 
  1. import numpy as np

  2. import cv2

  3. from matplotlib import pyplot as plt

  4. img1 = cv2.imread('data/queryImage.jpg', 0) # queryImage

  5. img2 = cv2.imread('data/trainImage.jpg', 0) # trainImage

  6. # Initiate SIFT detector

  7. sift = cv2.xfeatures2d.SIFT_create()

  8. # find the keypoints and descriptors with SIFT

  9. kp1, des1 = sift.detectAndCompute(img1,None)

  10. kp2, des2 = sift.detectAndCompute(img2,None)

  11. # BFMatcher with default params

  12. bf = cv2.BFMatcher()

  13. matches = bf.knnMatch(des1,des2, k=2)

  14. # Apply ratio test

  15. good = []

  16. for m,n in matches:

  17. if m.distance < 0.75*n.distance:

  18. good.append([m])

  19. # cv2.drawMatchesKnn expects list of lists as matches.

  20. img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,flags=2)

  21. ....

报错信息:

 
  1. ---------------------------------------------------------------------------

  2. TypeError Traceback (most recent call last)

  3. <ipython-input-54-8a7d0ce88553> in <module>()

  4. 18 good.append([m])

  5. 19 # cv2.drawMatchesKnn expects list of lists as matches.

  6. ---> 20 img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,flags=2)

  7. 21 plt.imshow(img3),plt.show()

  8.  
  9. TypeError: Required argument 'outImg' (pos 6) not found

解决:将img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,flags=2) 替换为:

          img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,None,flags=2) 即:如果没有outImg参数则传入None。

分析:

        在最后一个demo中:是将outImg参数以None的形式传入。

 
  1. import cv2

  2. cv2.drawMatchesKnn?

  3. ------------------------------------------------------------------------------------------------------

  4. Docstring:

  5. drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg

  6. . @overload

  7. Type: builtin_function_or_method

  8.  
  9.  
  10. demo:

  11. draw_params = dict(matchColor = (0,255,0),

  12. singlePointColor = (255,0,0),

  13. matchesMask = matchesMask,

  14. flags = 0)

  15.  
  16. img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,matches,None,**draw_params)


        在python3中,如果没有outImg参数则传入None就没问题了。

变更样例:

img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,None,flags=2)

 可参考文章:https://www.e-learn.cn/content/wangluowenzhang/309127

说明:问题产生的环境
  Python版本:3.6.5
  OpenCV版本:3.4.2

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3 TypeError: Required argument ‘outImg‘ (pos 3) not found 的相关文章

  • 如何分析FPGA的片上资源使用情况

    如何分析FPGA的片上资源使用情况 在维护遗留代码 4 时序问题初露端倪这篇文章中 我提到 第三方开发的设计中 组合逻辑与时序逻辑的比例为2 6 1 这是造成该设计时序收敛困难的原因之一 mengyudn朋友很热心 对这个数据的来历产生了疑
  • 神经网络笔记

    神经网络 一 什么是神经网络 是基于生物学中神经网络的基本原理 在理解和抽象了人脑结构和外界刺激响应机制后 以网络拓扑知识为理论基础 模拟人脑的神经系统对复杂信息的处理机制的一种数学模型 二 神经网络的基本特性 1 非线性 非线性关系是自然
  • jsp自定义标签库

    标签的概念 标签 标签是一种XML元素 通过标签可以使JSP网页变得简洁并且易于维护 还可以方便地实现同一个JSP文件支持多种语言版本 由于标签是XML元素 所以它的名称和属性都是大小写敏感的 标签处理类 标签处理类似是Java类 这个类继
  • 绘图工具(代码实现绘图)---plantuml

    基础入门第一个例子 时序图 流程图 源代码 图片展示 还有很多这里不再介绍 最近看到asciidoc和plantuml 是编写文档的极好工具 相对word和visio 最大的好处是可以实现代码版本管理 作为changelist asciid
  • eclipse运行,提示错误:The selection cannot be launched,and there are no recent launch

    错误原因 1 代码编辑错误 重点检查 main的拼写 String args 的拼写 类名后有没有空格 的书写等 2 没有定义类 需要先添加类 在文件中书写 如下 先新建Hello world类 再在生成的文件中书写代码 运行 就能得到正确
  • 没有与参数列表匹配的构造函数_C++构造函数和初始化表

    构造函数和初始化表 1 构造函数 当类对象被创建时 编译系统对象分配内存空间 并自动调用该构造函数 由构造函数完成成员的初始化工作 因此构造函数的作用是初始化对象的数据成员 2 构造函数可以重载 构造函数通过参数表的差别化可以形成重载 创建
  • 移动开发学习第二课学习记录

    图片资源 图片资源有 png jpg gif 9 png等文件 图片资源分类 应用图标资源村房子啊mipmap文件中 界面中使用的图片资源 存放在drawable文件夹中 一般不采用花哨的配色 除了个别的活动主题外 一般以浅色暖色为主 调用
  • Kioptrix: Level 2靶机实战 sql注入万能密码到后台 命令执行;getshell 内核漏洞9542 提权

    Kioptrix Level 1靶机实战 前言 0x01 信息收集 1 1 探测靶机ip 1 2 nmap探测端口 0x02 漏洞探测 2 1 访问首页 80端口 2 1 1远程系统管理员登录界面 2 1 1 1 尝试万能密码 2 1 1
  • 统计学中的Bootstrap方法(Bootstrap抽样)

    Bootstrap又称自展法 自举法 自助法 靴带法 是统计学习中一种重采样 Resampling 技术 用来估计标准误差 置信区间和偏差 Bootstrap是现代统计学较为流行的一种统计方法 在小样本时效果很好 机器学习中的Bagging
  • C语言实现成语接龙完整版

    C语言实现成语接龙报告完整版 代码在最后面 实验报告书 实验名称 成语接龙人机对战游戏 摘要 成语接龙是中华民族传统的文字游戏 它有着悠久的历史 也有广泛的社会基础 是老少皆宜的民间文化娱乐活动 同时成语又是体现我国文字 文化 文明的一个缩
  • c# 微信支付宝退款

    支付宝 根据官网接口参数传即可 private static string appId XXX appid private static string privateKeyPem XXX 私钥private static string Al
  • kong的端口简介以及如何远程连接kong的管理端口

    KONG的端口 kong有四个端口号 分别为两个代理端口 proxy listen 0 0 0 0 8000 0 0 0 0 8443 ssl 两个管理端口 admin listen 127 0 0 1 8001 127 0 0 1 844
  • PAT : PAT (Basic Level) Practice(中文)答案(1001 ~ 1095)(纯C编写)

    题目集地址 报名了12月的PAT B 先试试水 已完成 2018 10 22 2018 11 14 更新 2018 12 09 PAT乙级考试100分 考试代码已更新 冬天坐火车跑去考试冻懵了 来年对战PAT甲级考试 目录 目录 题目集地址
  • Transactional outbox pattern

    文章目录 Transactional outbox pattern 事件驱动架构 Event Driven Architecture EDA 数据库事务和消息发布的一致性问题 Transactional outbox如何解决数据事务和消息发
  • FastDFS踩坑记

    FastDFS踩坑记 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 分享几个收集到的FastDFS踩坑案例 供大家参考 以防掉进同一个坑里 欢迎在评论区补充踩坑案例 案例一 我在之前的公司碰到的案例 st
  • HTML5&CSS3笔记:CSS3过渡、变形和动画

    目前的情况是 如果页面上需要一些动画效果 要么你自己编写 JavaScript 要么使用 JavaScript 框架 如 jQuery 来提高效率 但是 虽然 CSS3 不可能在短期内取代 jQuery 或类似的框架 但它完全有能力做一些如
  • in和exsits、count(*)查询优化

    一 in和exsits 1 1 原则 小表驱动大表 即小的数据集驱动大的数据集 1 2 in 适用场景 当B表的数据集小于A表的数据集时 in优于exists select from A where id in select id from
  • VC的血与泪,最难尽调的是人性————失败风投案例分析

    VC的血与泪 最难尽调的是人性 失败风投案例分析 风险投资 Venture Capital 简称是VC 在中国是一个约定俗成的具有特定内涵的概念 其实把它翻译成创业投资更为妥当 广义的风险投资泛指一切具有高风险 高潜在收益的投资 狭义的风险
  • 【因果推断与机器学习】Causal Inference:Chapter_3

    Identification 当我们以因果结构图模型的形式捕获了我们的因果假设 因果分析的第二个阶段就是识别 在这个阶段 我们的目标是分析我们的因果模型 包括特征之间的因果关系以及观察到哪些特征 以确定我们是否有足够的信息来回答特定的因果推
  • UE4 C++ 结构体数组使用AddUnique方法添加元素报错

    当使用TArray的AddUnique方法给结构体数组添加元素时 如果结构体没有重写 操作符时就会报错 那么为什么会报这个错呢 因为AddUnique方法在添加元素前会将传入的元素在数组内搜索一遍 也就是Find 函数 在Find函数内部用

随机推荐

  • 【译】通过 Rust 学习解析器组合器 — Part 1

    原文地址 Learning Parser Combinators With Rust 原文作者 Bodil 译文出自 掘金翻译计划 本文永久链接 https github com xitu gold miner blob master TO
  • 数据结构——链表例题1

    1 在递增有序链表L中插入值为x的元素 使L依旧保持递增 void Insert LinkList L DataType x LinkList p L q p gt next s while x gt q gt data q NULL q可
  • 基于Vision Transformer的鸟类图像分类(200个类别)完整代码+数据

    视频讲解 Vision Transformer的鸟类图像分类 200个类别 完整代码 数据 哔哩哔哩 bilibili 项目结构 数据展示 主要的运行代码 import os import math import random import
  • 深入理解生产者与消费者问题

    缓冲区的形象理解 缓冲区好像使用一条传送带替代托架 传送带上一次可以放多个产品 生产者在缓冲区尾加入数据 消费者在缓冲区头读取数据 缓冲区满时 缓冲区上锁并等待消费者线程读取数据 每一个生产或消费动作使得传送带向前移动一个单位 因此 消费者
  • Day22_7 Java学习之对象数组

    目录 一 什么是对象数组 二 对象数组的作用 三 对象数组的语法定义及动静初始化 语法定义 静态初始化 在定义数组的同时对数组元素进行初始化 动态初始化 使用运算符new为数组分配空间 四 对象数组案例演示 案例需求 具体实现代码 一 什么
  • 《数据结构》第4章 串、数组和广义表

    数据结构 第4章 串 数组和广义表 第4章 串 数组和广义表 4 1 串的定义 4 2 串的类型定义 存储及其 运算 知识点1 串的表示 方法1 定长顺序存储表示 方法2 堆分配存储表示 方法3 串的块链存储表示 知识点2 必考 串的模式匹
  • Snipaste - 截图工具

    Snipaste 简介 Snipaste 是一个简单开源且强大的截图工具 也可以让你将截图贴回到屏幕上 下载并打开 Snipaste 按下 F1 来开始截图 再按 F3 截图就在桌面置顶显示了 就这么简单 你还可以将剪贴板里的文字或者颜色信
  • VS2008配置opencv

    配置过程 1 需要先提前安装好VS2008并下载好opencv的库 2 配置Windows环境变量 具体步骤为 右键我的电脑 属性 详细设定标签里 gt 环境变量 gt 系统变量 找到Path 将D Program Files opencv
  • 网络通信之应用层协议--Linux

    文章目录 关于应用层协议的理解 应用层协议的制定 理论部分 代码部分 完整代码以及测试 HTTP协议 代码测试HTTP协议 HTTPS协议 加密原因 基础的加密方式 数据摘要 数据指纹 数字签名 HTTPS的加密方式的选择 总结 关于应用层
  • OWASP TOP-10(2023) API风险

    OWASP API 1 对象级别授权失效 水平越权 攻击者就可以通过改变请求中的对象ID来绕过授权限制 从而获取敏感数据或者完全掌控账户 这个漏洞在基于API的应用程序中非常普遍 因为服务器通常无法跟踪完整的用户状态 而是依赖于请求参数中的
  • 网络攻防复习篇

    绪论 1 网络空间的4个要素 设施 数据 用户 操作 见第一章PPT 61页 下面这个图要背好 2 网络空间安全基本概念 络空间安全涉及到 络空间中的电磁设备 电 信息系统 运 数据和系统应 中所存在的安全问题 既要防 保护 信息通信技术系
  • open3d读取、显示和保存点云数据

    1 从文件中读取点云 接口1 bool open3d io ReadPointCloud const std string filename geometry PointCloud pointcloud const ReadPointClo
  • NCC申请授权

    1 进入home路径下的bin文件夹 打开sysconfig配置文件 2 在sysconfig配置界面 点击license 生成硬件锁 在弹框界面输入产品号 产品号可在点击 读取授权 按钮后 进行查看 后 点击确定 自动生成一个hardke
  • CryptoPP使用介绍

    CryptoPP使用介绍 发表时间 2012年06月15 分类 编程开发 作者 天缘 Crypto 是个免费的C 加解密类库 由于资格太老 持续更新 最新版本到了CryptoPP 5 6 对天缘而言 第一眼看到CryptoPP就感觉头大 根
  • 文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计

    以PLSA和LDA为代表的文本语言模型是当今统计自然语言处理研究的热点问题 这类语言模型一般都是对文本的生成过程提出自己的概率图模型 然后利用观察到的语料数据对模型参数做估计 有了语言模型和相应的模型参数 我们可以有很多重要的应用 比如文本
  • JavaWeb - Servlet:重定向和转发,状态管理

    Servlet JDBC 应用 在 Servlet 中可以使用 JDBC 技术访问数据库 常见功能如下 查询 DB 数据 然后生成显示页面 例如 列表显示功能 接收请求参数 然后对 DB 操作 例如 注册 登录 修改密码等功能 为了方便重用
  • 代理重加密(Proxy Re-Encryption)技术原理和Java代码实现

    欢迎关注公众号 区块链之美 致力于区块链技术研究 传播区块链技术和解决方案 区块链应用落地 区块链行业动态等 1 代理重加秘的应用介绍 由于大部分的云服务供应商并不能完全值得信任 云服务供应商可能会在未经用户允许的情况下 擅自泄露用户的隐私
  • 【node】10、express模块搭建服务

    express模块是一个外部引入模块 不是node内部自身的模块 所以需要下载express模块才能引入 下载express之前需要初始化项目文件 npm init y 初始化后安装express npm install express 安
  • org.springframework.aop.AopInvocationException: Null return value from advice does not match primiti

    private static Object processReturnType Object proxy Object target Method method Object retVal Massage return value if n
  • Python3 TypeError: Required argument ‘outImg‘ (pos 3) not found

    问题 在用python3使用img3 cv2 drawMatchesKnn img1 kp1 img2 kp2 good flags 2 的时候 可能会产生错误 TypeError Required argument outImg pos