当前位置: 首页 > 知识库问答 >
问题:

使用OpenCV imwrite方法处理OpenMV摄像头的图像时出现问题

姜永贞
2023-03-14

我正在尝试使用OpenCV的缝合算法缝合从OpenMV H7相机拍摄的一些图像。我遇到了无法写入或读取这些图像的问题,这让我觉得存在一些兼容性问题。

更确切地说,我在使用方法(cv2.imwrite)本身时得到了这个错误:

  File "main_script_test.py", line 141, in <module>
    cv2.imwrite("/Documents/Cam/Images/image_" + str(images_To_Be_Taken), img)
TypeError: Expected Ptr<cv::UMat> for argument 'img'

我一直在想,也许有一种方法可以将图像转换为NumPy数组以使其兼容,但我不太确定。

有什么建议吗?

共有1个答案

习宸
2023-03-14

OpenCV的imwrite需要一个Mat对象,这是一个“n维密集数组类”。至少在imwrite()的情况下,传入图像数据的numpy数组来代替Mat对象,将产生正确的结果。

从上面链接的留档:

因此,Mat中的数据布局与标准工具包和SDK中的大多数密集阵列类型兼容,例如Numpy(ndarray)、Win32(独立设备位图)等,也就是说,与任何使用步长(或步长)计算像素位置的阵列兼容。由于这种兼容性,可以为用户分配的数据制作Mat头,并使用OpenCV函数就地处理。

对于您的代码:

cv2.imwrite("/Documents/Cam/Images/image_" + str(images_To_Be_Taken), np.asarray(img))
 类似资料:
  • 我正在尝试使用播放器模块访问android摄像头,但我遇到了以下错误,我不知道如何解决它。 这是我的密码。 我的建筑工人。规格: 有办法解决吗?

  • 主要内容:第1步:加载OpenCV本机库,第2步:实例化视频捕获类,第3步:阅取帧,示例在本章中,我们将学习如何使用OpenCV使用系统摄像头捕获帧。包中的类包含使用相机捕获视频的类和方法。下面来一步一步学习如何捕捉帧 - 第1步:加载OpenCV本机库 在使用OpenCV库编写Java代码时,使用加载OpenCV本地库。加载OpenCV本机库,如下所示 - 第2步:实例化视频捕获类 使用本教程前面提到的函数来实例化类。 第3步:阅取帧 可以使用类的方法从相机读取帧。此方法接受类的对

  • 本文向大家介绍python使用opencv驱动摄像头的方法,包括了python使用opencv驱动摄像头的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python使用opencv驱动摄像头的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 表情测试 图片转文字 相框 拍摄图片

  • 摄像头用于采集图像和影像信息,通过模块间的组合完成各种创意活动。 净重量:8.1g 体积:24×24×22mm 参数 分辨率:1280×720 像素大小:3.4um×3.4um 最大图像传输速率:全尺寸 @ 30fps 视场角:100° 镜片结构:4G+IR 焦比:2.97 有效焦距:2.4mm 功耗:100uA(待机)~240mW(工作) 电源:USB总线电源 抗跌落能力:1m 工作温度:-30

  • 我已经做了一个程序,它能够捕捉网络摄像头的帧,并在运行不同的每像素算法后显示它们——例如制作图像灰度。目前我正在使用FastBitmap类(找不到链接atm),它使用指针来设置和获取位图中的像素。 然而,我想让我的程序多线程,以便多个线程在同一个图像上工作。为此,我通过BitmapData将图像分割成几个部分(每个线程一个部分),并让不同的线程处理它们给定的部分BitmapData。最后,一个“管