在 openCV 中的特定坐标处将图像显示在另一图像上

2023-11-23

我试图在特定坐标处将一个图像显示在另一个图像上。我已使用网络摄像头检测到 aruco 标记,并且我想在 aruco 标记上显示另一个图像。 aruco 标记可以移动,并且覆盖的图像应与标记一起移动。

有各种绘图功能并将文本输入到图像中。我尝试过图像叠加和图像单应性。

我可以获得角点的坐标。 有没有什么函数可以在这些坐标处插入图像?

import cv2
import cv2.aruco as aruco
import glob

markerLength = 0.25

cap = cv2.VideoCapture(0)

criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)

objp = np.zeros((6*7,3), np.float32)
objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2)

objpoints = [] 
imgpoints = []

images = glob.glob('calib_images/*.jpg')

for fname in images:
    img = cv2.imread(fname)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    ret, corners = cv2.findChessboardCorners(gray, (7,6),None)

    if ret == True:
        objpoints.append(objp)

        corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
        imgpoints.append(corners2)
        img = cv2.drawChessboardCorners(img, (7,6), corners2,ret)


ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None)

calibrationFile = "calibrationFileName.xml"
calibrationParams = cv2.FileStorage(calibrationFile, cv2.FILE_STORAGE_READ) 
camera_matrix = calibrationParams.getNode("cameraMatrix").mat() 
dist_coeffs = calibrationParams.getNode("distCoeffs").mat() 

while(True):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    aruco_dict = aruco.Dictionary_get(aruco.DICT_6X6_250)
    arucoParameters =  aruco.DetectorParameters_create()

    corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=arucoParameters)
    if np.all(ids != None):
        rvec, tvec, _ = aruco.estimatePoseSingleMarkers(corners, markerLength, mtx, dist) 
        axis = aruco.drawAxis(frame, mtx, dist, rvec, tvec, 0.3) 
        print(ids)
        display = aruco.drawDetectedMarkers(axis, corners)
        display = np.array(display)
    else:
        display = frame

    cv2.imshow('Display',display)
    if cv2.waitKey(1) & 0xFF == ord('q'):
            break

cap.release()
cv2.destroyAllWindows()```

替换图像的一部分

import cv2
import numpy as np

img1 = cv2.imread('Desert.jpg')
img2 = cv2.imread('Penguins.jpg')

img3 = img1.copy()
# replace values at coordinates (100, 100) to (399, 399) of img3 with region of img2
img3[100:400,100:400,:] = img2[100:400,100:400,:]
cv2.imshow('Result1', img3)

enter image description here

对两个图像进行 Alpha 混合

alpha = 0.5
img3 = np.uint8(img1*alpha + img2*(1-alpha))
cv2.imshow('Result2', img3)

enter image description here

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

在 openCV 中的特定坐标处将图像显示在另一图像上 的相关文章

  • 理解@property装饰器和继承[重复]

    这个问题在这里已经有答案了 这里是 Python 3 以防万一它很重要 我试图正确理解如何实现继承 property使用 我已经搜索了 StackOverflow 并阅读了大约 20 个类似的问题 但无济于事 因为他们试图解决的问题略有不同
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • Python 3 - 编码/解码与字节/Str [重复]

    这个问题在这里已经有答案了 我是 python3 的新手 来自 python2 我对 unicode 基础知识有点困惑 我读过一些很好的帖子 这让一切变得更加清晰 但是我看到 python 3 上有两种方法可以处理编码和解码 但我不确定使用
  • 如何解码 dtype=numpy.string_ 的 numpy 数组?

    我需要使用 Python 3 解码按以下方式编码的字符串 gt gt gt s numpy asarray numpy string hello nworld gt gt gt s array b hello nworld dtype S1
  • 按序列大小对 fasta 进行排序

    我目前想按序列大小对 hudge fasta 文件 10 8 行和序列 进行排序 fasta 是生物学中用于存储序列 遗传或蛋白质 的明确定义的格式 gt id1 序列 1 可以位于多行 gt id2 序列2 我运行了一个提供 tsv 格式
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • Python3 类型错误:replace() 参数 1 必须是 str,而不是 int

    我已经尝试了几天让这段代码在 MacOS 上运行 但没有成功 你能看一下我错过了什么吗 运行 python 3 6 我已经上传了整个代码 多谢 usr bin env python3 from future import print fun
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • 在我们的 Rails3/Heroku 应用程序中设置 Paperclip + AWS S3 用于图像存储时遇到问题

    我们已经构建了一个 Rails 应用程序 它有多个用户和每个用户的图像 在我们的本地主机上完成所有开发工作 我们为用户和照片提供了工作种子 但现在我们尝试使用 S3 进行图像存储 我们在 总是在 种子 期间遇到错误执行此操作时迁移的步骤 耙
  • opencv 2.3.* 读取不工作

    我无法让 imread 工作 与这个人有同样的问题 OpenCV imwrite 2 2 在 Windows 7 上导致异常 并显示消息 OpenCV 错误 未指定错误 无法找到指定扩展名的编写器 https stackoverflow c
  • BASH 脚本编译多个 C++ 文件 - OpenCV

    请参见在C 和OpenCV中调用其他文件中的函数 https stackoverflow com questions 24442836 call functions in other files in c and opencv 对于最初的问
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • 指纹奇异点检测

    我正在尝试确定指纹的核心点和增量点 我正在使用庞加莱指数方法 但我无法成功检测到这一点 而且我不明白为什么 First I divide the image in 15x15 blocks then I calculate the x an
  • 使用 ffmpeg 或 OpenCV 处理原始图像

    看完之后维基百科页面 http en wikipedia org wiki Raw image format原始图像格式 是任何图像的数字负片 为了查看或打印 相机图像传感器的输出具有 进行处理 即转换为照片渲染 场景 然后以标准光栅图形格
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • 如何使用 EMGU 计算 DFT 及其逆函数?

    如何计算图像的 DFT 使用 EMGU 显示它 然后计算反向值以返回原始图像 我将在这里回答我自己的问题 因为我花了一段时间才弄清楚 To test that it works here s an image and here s the
  • Python 中 eval("input()") 和 eval(input()) 之间的区别

    我正在尝试以下功能 x eval input 输入为 123 x 的类型也是int 它工作正常 In 22 x eval input enter enter 123 In 24 print type x
  • 类unix系统中的python和python3命令有什么区别?

    我通读了每个命令的描述 但每个命令的描述都是完全相同的 所以我不明白这两个命令在类 Unix 系统中的工作方式有何不同 谁能解释其中的区别吗 Python3命令的引入是因为python命令指向了python2 从那时起 Python3 已成
  • 如何使用 PySpark 预处理图像?

    我有一个项目 需要为 1 设置大数据架构 AWS S3 SageMaker 的概念验证使用 PySpark 预处理图像 2 执行 PCA and 3 训练一些机器或深度学习模型 我的问题是了解如何使用 PySpark 操作图像数据 但无法在

随机推荐

  • 查找字符串中最短的重复模式

    我想知道是否有办法在 Octave Matlab 中进行模式匹配 我知道 Maple 10 有执行此操作的命令 但不确定我需要在 Octave Matlab 中做什么 所以如果一个数字是12341234123412341234模式匹配将是1
  • 为什么 &[T] 参数也接受 &Vec

    我正在阅读 Rust 书 即迷你grep项目 在那里我遇到了以下片段 fn main let args Vec
  • 计算文件中单词数的最简单方法

    我正在尝试以最简单的方式编写一个程序来计算 Scala 语言文件中单词出现的次数 到目前为止我有这些代码 import scala io Codec string2codec import scala io Source import sc
  • 在遍历表达式时提取实例变量的当前值

    我目前正在尝试编写一些将 C 表达式转换为文本的代码 为此 我不仅需要遍历表达式树 还需要评估其中的一小部分 以获得局部变量的当前值 我发现很难用语言来表达 所以这里是伪代码 缺少的部分在第一种方法中 public class Progra
  • 如何将时间戳转换为可读的日期/时间?

    我有一个 APIresult像这样给出时间戳1447804800000 如何使用 Javascript jQuery 将其转换为可读格式 您可以使用以下命令将其转换为可读日期new Date method 如果有特定的日期戳 可以通过以下方
  • 我应该如何理解 dis.dis 的输出?

    我想了解如何使用dis Python字节码的反汇编器 具体来说 应该如何解释输出dis dis or dis disassemble 这是一个非常具体的示例 在 Python 2 7 3 中 dis dis heapq nsmallest
  • 克隆整个对象图

    使用此代码序列化对象时 public object Clone var serializer new DataContractSerializer GetType using var ms new System IO MemoryStrea
  • (Hadoop) MapReduce - 链作业 - JobControl 不会停止

    我需要链接两个 MapReduce 作业 我使用 JobControl 将 job2 设置为依赖于 job1 它有效 输出文件已创建 但它并没有停止 在 shell 中它保持这种状态 12 09 11 19 06 24 WARN mapre
  • Windows 中的 GetDesktopWindow 和 OpenInputDesktop API 有什么区别?

    两者的用法有什么区别GetDesktopWindow and OpenInputDesktopWindows 中的 API 至于他们做什么 GetDesktopWindow 返回 根 HWND调用线程当前与哪个桌面关联 也许更好的想法是 扎
  • 冒充用户名和密码?

    WindowsIdentity identity new WindowsIdentity accessToken WindowsImpersonationContext context identity Impersonate contex
  • Swift 的 size 方法采用 Int 的理由是什么?

    我注意到很多快速的内置函数接受或返回Int是而不是UInts 以下是一些示例Array mutating func reserveCapacity minimumCapacity Int var capacity Int get init
  • 我的表格视图在滚动时重用选定的单元格——在 SWIFT 中

    早上好 我的问题是 当我再次向下和向上滚动时 我的表格视图会重用所选的单元格 我的意思是 当我从向上选择一个单元格然后向下滚动时 我未选择的一些单元格会显示为选中状态 还有一些从上往下选择的单元格也会被选中 当我再次向上滚动时 未显示选中状
  • 使用 Propel ORM 进行 UNION 查询

    我正在尝试使用 Propel ORM 创建 UNION 查询 例如 criterion1 UNION criterion2 有谁知道如何做到这一点 您无法使用 Criteria 创建联合查询 相反 您可以自己创建 SQL 字符串 并用它来水
  • iReport:在详细信息带中获取表的多个副本

    我是新来的iReport 所以我想根据数据做一个简单的报告 我的问题是 当我的行数小于详细信息带的大小时 整个表会在详细信息带中重复 并且我不想再次出现 如果我的行数大约为 5 那么同一个表会在详细信息带中复制 4 次 不仅是表 而且是我放
  • 检测您的手指在 Android 中滑过哪个视图

    虽然相似问题过去曾被问过 但他们似乎并没有真正得到回答 这可能是由于对所问的内容感到困惑 简而言之 我想检测当您的手指在屏幕上滑动时正在进入哪个视图 最好的例子就是任何 Android 手机上的软键盘 当您按任意键时 它会显示为弹出窗口 告
  • 删除空格和任何非字母数字的内容

    我试图删除所有非字母数字的内容 或者是带 的空格 filename preg replace a zA Z0 9 s filename 我在这里做错了什么 它似乎不起作用 我尝试了几种正则表达式组合 而且我通常不是很聪明 尝试这个 file
  • 请求的资源上不存在“Access-Control-Allow-Origin”标头 - ionic 2 应用程序

    当我尝试使用 POST 请求访问本地服务器时 收到以下错误 XMLHttpRequest 无法加载http 127 0 0 1 8000 api v1 users login 请求的资源上不存在 Access Control Allow O
  • C 中有 bool 的格式说明符吗?

    在下面的示例中 我尝试扫描布尔类型变量的值 当我在 GCC 中编译时 我收到以下警告 warning format d expects argument of type int but argument 2 has type Bool Wf
  • 如何优雅地结束 Google Speech-to-Text 流识别并取回待处理的文本结果?

    我希望能够结束 Google 语音转文本流 创建于streamingRecognize 并获取待处理的 SR 语音识别 结果 简而言之 相关的 Node js 代码 create SR stream const stream speechC
  • 在 openCV 中的特定坐标处将图像显示在另一图像上

    我试图在特定坐标处将一个图像显示在另一个图像上 我已使用网络摄像头检测到 aruco 标记 并且我想在 aruco 标记上显示另一个图像 aruco 标记可以移动 并且覆盖的图像应与标记一起移动 有各种绘图功能并将文本输入到图像中 我尝试过