输入图像中的通道数无效

2024-03-09

我在运行程序时收到错误,我特别考虑了 OpenCV 库中的颜色操作。

我正在尝试构建一个程序,从 Raspberry Pi 摄像头获取视频并对其进行分析。我想找到视频中最亮的点,并计算该点距视频源中心的距离和角度。

我正在做的项目将相机指向一个暗箱的中心,并有一个移动的光点。

我在 Raspberry Pi 3 上使用 OpenCV 4.0.0 和 C++,以及raspicam https://github.com/cedricve/raspicam图书馆。

我正在接受指点this https://www.pyimagesearch.com/2014/09/29/finding-brightest-spot-image-using-python-opencv/指南,但我使用 C++ 和视频源,而不是 Python 和静态图像。

    raspicam::RaspiCam_Cv Camera;
    cv::Mat image;
    cv::Mat gray;
    int nCount=100;
    int nR, nC;         // numRows, numCols
    cv::Point imgMid;
    Vect toCenter;

    // for recording brightest part of img
    double minVal, maxVal;
    cv::Point minLoc, maxLoc;

    Camera.set(cv::CAP_PROP_FORMAT, CV_8UC1);

    #ifdef DEBUG
    cout << "Opening camera..." << endl;
    if (!Camera.open()) {
        cerr << "Error opening the camera" << endl;
        return -1;
    }
    cout << "Capturing " << nCount << " frames ...." << endl;
    #endif

    for (int i=0; i< nCount; i++) {
        Camera.grab();
        Camera.retrieve(image);
        nR = image.rows;
        nC = image.cols;
        imgMid.x = nC / 2;
        imgMid.y = nR / 2;

        // convert to grayscale image
        cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);

        // find x, y coord of brightest part of img
        cv::minMaxLoc(gray, &minVal, &maxVal, &minLoc, &maxLoc);

        // calculate vector to the center of the camera
        toCenter.first = distBtwn(imgMid.x, maxLoc.x, imgMid.y, maxLoc.y);
        toCenter.second = angle(imgMid.x, maxLoc.x, imgMid.y, maxLoc.y);

我希望程序获取视频源的一帧,将其转换为灰度,找到该帧最亮的部分,最后进行一些计算以找到到帧中心的距离以及该点与正 x 的角度-轴。

这是错误

我为手机摄像头道歉,但我正在与另一个城市的其他人一起工作,他们那里有测试设备(我是编码员),这就是他们发给我的。


正如错误消息所述,颜色转换函数输入中给出的图像具有无效的通道数。

重点是您正在将帧获取为单个 8 位通道

Camera.set(cv::CAP_PROP_FORMAT, CV_8UC1)

然后你尝试将此帧转换为灰度

cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY)

您有 2 个简单的选择来解决此问题:

  1. 您更改相机采集格式以获得颜色 帧中的信息,例如使用 CV_32S 或 CV_32F
  2. 您可以跳过颜色转换,因为您已经有了灰度图像,因此无需对其进行转换。

查看此链接以了解 OpenCV 颜色操作 https://docs.opencv.org/3.4/de/d06/tutorial_js_basic_ops.html

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

输入图像中的通道数无效 的相关文章

  • 针对不同相机(RGB 和红外)的 StereoCalibrate

    我在校准两个摄像头时遇到问题 第一个是 RGB 第二个是红外 它们有不同的分辨率 我调整了大小并裁剪了更大的图像 焦距等等 例子 RGB 1920x1080 Infrared 512x424 如何相互校准它们 我应该在stereoCalib
  • Ruby 解释器嵌入到 C 代码中

    我只是尝试书中的一个简单例子 我有一个 sum rb 文件 class Summer def sum max raise Invalid maximum max if max lt 0 max max max 2 end end 还有一个
  • 根据另一个列表的内容对列表进行排序

    我有一个包含整数列表的列表和另一个包含同时包含整数和字符串的类的列表 我想做的是按字母顺序对列表进行排序 将第一个列表中存在的条目放在前面 这是我的代码和预期输出 using System using System Collections
  • 使用inotify监控文件

    我正在使用 inotify 来监视本地文件 例如使用 root temp inotify add watch fd root temp mask 删除该文件后 程序将被阻止read fd buf bufSize 功能 即使我创建一个新的 r
  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht
  • 模拟 EF core dbcontext 和 dbset

    我正在使用 ASP NET Core 2 2 EF Core 和 MOQ 当我运行测试时 我收到此错误 消息 System NotSupportedException 非虚拟 可在 VB 中重写 成员上的设置无效 x gt x Movies
  • EASTL 与 STL 相比,std::vector::operator[] 怎么会有这么大的性能差异

    根据http www open std org jtc1 sc22 wg21 docs papers 2007 n2271 html http www open std org jtc1 sc22 wg21 docs papers 2007
  • 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

    我确信我在这里遗漏了一些非常简单的东西 我创建了一个自定义日期时间显示模板 使用以下方法时效果很好 但是 我遇到了这样的情况 在部分控件内 我在 for 循环中迭代模型中的对象 我想要一个 DateTime 属性来使用显示模板 但我不知道如
  • DLL 需要访问其应用程序的符号

    在 C 中 DLL 是否可以访问加载它的应用程序的某些符号 我有一个加载插件 dll 的应用程序 这些插件需要访问该应用程序的某些API 是否可以在不创建共享此 API 的新 DLL 的情况下实现此目的 函数指针结构适合这种情况吗 示例 主
  • 为什么long long 2147483647 + 1 = -2147483648? [复制]

    这个问题在这里已经有答案了 为什么这段代码不打印相同的数字 long long a b a 2147483647 1 b 2147483648 printf lld n a printf lld n b 我知道int变量的最大数量是2147
  • 如何检查是否发生溢出? [复制]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f
  • STL 向量、迭代器和插入 (C++)

    我有一个将向量的迭代器传递到的方法 在这个方法中 我想向向量中添加一些元素 但我不确定当只有迭代器时这是否可行 void GUIComponentText AddAttributes vector
  • C中的pipe()和fork()

    我需要创建两个子进程 一个子进程需要运行命令 ls al 并将其输出重定向到下一个子进程的输入 而下一个子进程又将对其输入数据运行命令 sort r n k 5 最后 父进程需要读取该数据 已排序的数据 并将其显示在终端中 终端中的最终结果
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi
  • 从哪里开始阅读 SQLite 源代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想了解sqlite是如何实现的 并且 想阅读源代码 我已经下载了源代码 我应该开始查看代码的哪一部分 SQLite文档页 http

随机推荐

  • Entity Framework Core - 版本 5+ 与输出数据库无关

    我有一个使用 EF Core 的应用程序 最初是使用 V3 1 1 编写的 我们决定冒险更新到 v5 0 1 现在它已经不再预览了 该应用程序支持 MSSQL 和 SQLite 最初运行得很好 迁移的创建基本上与工具和文档无关here ht
  • 您的启动项目“项目”未引用 Microsoft.EntityFrameworkCore.Design

    我正在使用 EntityFrameworkCore 版本 2 2 2 构建 WPF 应用程序 然而 当我想要Add Migration它向我输出一个错误 Your startup project project doesn t refere
  • 如何配置星号即时消息

    星号支持即时消息吗 我尝试为 IM 配置星号 从这个例子 https groups google com forum msg csipsimple users stBJYGQ88fw OgLW8CLVvIkJ 但是当我尝试将 IM 发送到另
  • 下限 > 0 的 .Net 数组

    虽然这可能是一件奇怪的事情 但我需要在 Net 中创建一个下限 gt 0 的数组 乍一看 这似乎是可能的 使用 Array CreateInstance typeof Object new int 2 new int 9 产生所需的结果 下
  • 一个maven项目如何依赖另一个本地maven项目?

    我有两个 Maven 项目project foo pom xml and project bar pom xml 我有foo取决于bar and I want that every timefoo pom xmlcompiles it ll
  • 单元测试模拟 GCS

    我很难找到一种方法来进行单元测试read and write此类中存在的方法 我正在尝试使用模拟补丁库创建一个模拟 以避免调用 Google Storage 但我很难弄清楚如何做到这一点 from google cloud import s
  • 在c#中用0-9之间的随机数填充数组[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中用 0 9 之间的唯一随机数填充数组 https stackoverflow com questions 10688044 filling a array with uniqe random
  • 使用相关字段更新项目的示例过滤器挂钩

    我有 3 个集合 客户 经销商 和 订单 客户与经销商之间存在多对一的关系 经销商与客户之间是一对多的关系 订单与客户之间存在多对一的关系 我想使用先前配置的多对一关系根据所选客户自动设置orders reseller 字段 payload
  • img 元素上的 HTML 宽度/高度属性和 CSS 宽度/高度属性有什么区别?

    超文本标记语言 img 元素可以有width height属性 也可以有CSSwidth height特性 img src xxx img width 16 height 16 style width 16px height 16px HT
  • 我无法从数据库中检索图像

    我有一个包含电影名称 描述和封面图片的数据库 封面图片字段类型为 blob 问题是我无法从数据库中检索它 我想在他们旁边的封面图片上显示电影名称 如何做到这一点 这是我的代码 table border 1 width 100 tr td t
  • Perl 中的“字符串化”是什么?

    在 CPAN 模块的文档中DateTime http search cpan org drolsky DateTime 0 66 lib DateTime pm Formatters And Stringification我发现了以下内容
  • 在 Swift 中子类化 UINavigationBar

    我正在尝试创建一个自定义UINavigationBar类 然后使用Storyboard将其设置为我的班级UINavigationController的导航栏 这是我的代码UINavigationBar class class CustomN
  • 使用外部服务的 Shopify 自定义搜索

    我的情况 我们有一个 Shopify 商店 我们还有一个在 AWS 上实施和托管的搜索引擎 我们需要使用该搜索引擎而不是 Shopify 商店中的默认 search 理想情况下 当用户尝试搜索某些内容时 他们的查询 以及可能的其他内容 例如
  • C++ 静态变量总是在主线程上被破坏吗?

    简短的问题 C 11 静态 非线程本地 变量是否总是在主线程上分散注意力 它们是否总是仅在程序退出时被销毁 考虑到我们不手动调用它们的析构函数 UPDATE 为了简洁起见 我们假设调用了析构函数 我们没有拔掉插头 我们没有杀死 9 全局对象
  • 使用“Runtime.getRuntime().exec”从 Java 启动的进程无法访问文件系统位置

    从 Java 启动的进程Runtime getRuntime exec权限较少 我在 JavaDocs 中没有看到对此的描述以及如何管理它 如何保证启动的进程具有相同的环境和权限 更多细节 编写轻量级 Eclipse 插件maven htt
  • 安全 Rust 中的转换会导致运行时错误吗?

    我正在摆弄一点Any和铸造只是为了更深入地了解 Rust 从 C 开始 我已经习惯了强制转换可能导致运行时异常 因为在 C 中强制转换基本上意味着亲爱的编译器 相信我 我知道我在做什么 请将其转换为int32因为我知道它会起作用 但是 如果
  • R中的正态分布图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用plot命令在r中绘制正态分布 plot x dnorm x mean sd 使用我的平均值和标准差值 然而 使用这些值 y
  • 从 C# 调用 NetValidatePasswordPolicy 始终返回密码必须更改

    我们有一个使用 Active Directory 来验证用户身份的 mvc 应用程序 我们正在利用System DirectoryServices并使用PricipalContext验证 principalContext ValidateC
  • 如何在 OS 10.6 (Snow Leopard) 上解决此 PostgreSQL 错误

    我按照以下说明设置 postgresql这个网站 http www robbyonrails com articles 2010 02 08 installing ruby on rails passenger postgresql mys
  • 输入图像中的通道数无效

    我在运行程序时收到错误 我特别考虑了 OpenCV 库中的颜色操作 我正在尝试构建一个程序 从 Raspberry Pi 摄像头获取视频并对其进行分析 我想找到视频中最亮的点 并计算该点距视频源中心的距离和角度 我正在做的项目将相机指向一个