无法使用 Logitech C920 访问 cv::VideoCapture 的属性

2023-12-15

我正在使用 Logitech C920 和 OpenCV 开发一个小型网络摄像头应用程序。

实际上,我可以从相机获取图像,对于给定的分辨率没有任何问题。但除了框架宽度和高度之外,我无法访问相机中的任何设置。我有以下代码。正如您所猜测的,该代码生成了除前两行之外的所有零行。

难道我做错了什么?或者这是罗技的另一个专有 BS?如果这是 OpenCV 的限制,是否还有其他选项可以在 Windows 操作系统中为此网络摄像头开发应用程序?

    m_cam.open(0);
    if(!m_cam.isOpened() )  // check if we succeeded
    {
        std::cerr << "ERROR: Could not open cameras." << std::endl;
        return;
    }

    int ex = static_cast<int>(m_cam.get(CV_CAP_PROP_FOURCC));
    char EXT[] = {ex & 0XFF , (ex & 0XFF00) >> 8,(ex & 0XFF0000) >> 16,(ex & 0XFF000000) >> 24, 0};
    m_cam.set(CV_CAP_PROP_FOURCC,CV_FOURCC('H','2','6','4')); 
    m_cam.set(CV_CAP_PROP_FRAME_WIDTH,1280);//2304);//1829//1200//800
    m_cam.set(CV_CAP_PROP_FRAME_HEIGHT,720);//1536); //1080//800//600   
    m_cam.set(CV_CAP_PROP_FPS, 30);
    //m_cam.set(CV_CAP_PROP_EXPOSURE,0);
    std::cout<< m_cam.get(CV_CAP_PROP_FRAME_WIDTH) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_FRAME_HEIGHT) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_FPS) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_EXPOSURE) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_FORMAT) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_CONTRAST) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_BRIGHTNESS) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_SATURATION) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_HUE) << std::endl; 
    std::cout<< m_cam.get(CV_CAP_PROP_POS_FRAMES) << std::endl; 

安装 dshow 和 ffmpeg 后通过重建 OpenCV 修复了该问题。我现在甚至可以设置一些值,例如帧速率,但相机按指定工作似乎是一个单独的问题。就我而言,在设置分辨率而不设置帧速率后,相机分辨率变为 640 x 480。尽管我的计算机安装了 H264 解码器,但使用 OpenCV 时 1920 x 1080 会产生 5-7 fps。

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

无法使用 Logitech C920 访问 cv::VideoCapture 的属性 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我

随机推荐

  • OpenCSV 解析器无法解析数据中的双引号

    我有以下 CSV 文件 id Description vale 1 New Account val1 我无法使用 OpenCSV 读取上述 CSV 文件 它无法读取New Account 因为数据内有双引号 我的 CSV 阅读器构造函数是
  • NetCDF 到 Raster Brick“无法找到‘ncdf4’的函数‘brick’的继承方法”

    光栅包的问题非常简单 还使用 ncdf4 加载 ECMWF Era Interim Netcdf 文件 只需这样做 a lt nc open SSTs nc B lt brick a varname sst 返回这个 Error in fu
  • 如何用 preg_replace 替换单词而不重复?

    我想创建一个 PHP 函数 它将用内部链接替换文本中的某些单词 到目前为止 这有效 但如果我有两个匹配项 我最终会得到无效的 HTML 代码 Example Welpen hunde Chihuahua Welpen hunde chihu
  • 没有聚合的简单(?)PIVOT

    枢轴 伙计 我只是想念它 也许是因为我没有做聚合 哎呀 也许枢轴不是做到这一点的方法 感觉应该很简单 但是却让我难住了 假设我有这个 SELECT col1 FROM tbl1 col1 414 589 我怎样才能把这两条记录恢复为 fau
  • 如何使用 JavaScript 异步更新我的内容?

    Scenario 我正在编写一个 Web 应用程序 在我的例子中是 MVC 我需要使用 get 请求的响应来更新特定容器 有时我想过滤元素并从响应中找到一个元素以放入原始容器中 我该怎么做 当我需要异步部分更新我的内容时 我正在构建一个 W
  • 通过maven下载本地仓库jar依赖文件

    我无法通过 Maven 下载一个 jar 因此我创建了一个本地存储库并手动下载了 jar 然后使用系统范围添加到 pom
  • 将包含 COMBINING DIAERESIS 的文本转换为 utf-8

    我们有一些包含德语变音符号的文本 例如使用 a 组合分音符号 cc 88 知道如何将此类文本正确转换为 utf8 吗 首先 如果它还不是unicode然后解码它 第二 unicodedata normalize 第三 编码
  • r wordclouds 中的彩色类别

    使用 R 中的 wordcloud 包 我想根据数据集中的分类变量为不同的单词着色 说我的数据如下 name weight group 1 Aba 10 x 2 Bcd 20 y 3 Cde 30 z 4 Def 5 x 在这里作为dput
  • 替代instanceof?

    我听说使用 instanceof 或等效项是糟糕的设计 http www javapractices com topic TopicAction do Id 31 什么时候应该使用instanceof 什么时候不应该使用instanceof
  • Oracle Select 语句中的 IF 条件

    有没有办法在 IF 条件中使用 select 语句 例如 IF SELECT TotalPrice FROM ORDER WHERE ORDERID 123 gt 0 THEN do something ELSE do something
  • 使用 .str.replace() 与 .replace() 更新 pandas DataFrame

    我的 pandas Dataframe df 中有一个列 其中包含一个带有一些尾随十六进制编码 NULL x00 的字符串 至少我认为是这样 当我尝试将它们替换为 df SOPInstanceUID df SOPInstanceUID re
  • 未定义的参考编译器错误

    我想我已经很接近了 但是我遇到了这个错误 我已经用头撞墙几个小时了 我错过了一些愚蠢的东西 我一个字符一个字符地查找 但我找不到它 编译器给了我 main cpp 16 undefined reference to translator t
  • 我的整合金矿算法的缺陷在哪里?

    设置是 给定一个列表N像这样的物体 class Mine public int Distance get set from river public int Gold get set in tons 将黄金从一个矿场转移到另一个矿场的成本为
  • Windows 通知库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在为 Windows 开发一个小型托盘图标应用程序 我需要显示非侵入性的视觉通知 类似于您在 MSN Messenger 或任何其他 IM 应用
  • 获取代理ip地址使用scrapy进行爬取

    我使用 Tor 来抓取网页 我启动了 Tor 和 Polipo 服务并添加了 class ProxyMiddleware object overwrite process request def process request self r
  • 在 JTextField 中键入阿拉伯数字

    我正在尝试在中输入阿拉伯数字JTextField我用过DocumentListener如下 txtName getDocument addDocumentListener this public void insertUpdate Docu
  • windows批处理中call和cmd /c的区别

    有人可以解释一下两者之间有什么区别吗 call someBatchFile bat And cmd C someBatchFile bat 他们都向我建议作为解决方案this问题 但我不明白为什么它们都有效 更重要的是 如果有任何显着差异我
  • 使用perl在字符串中搜索未知子字符串

    我正在尝试从网站下载文件 但我只想下载文件版本比我拥有的同一文件最新的版本 文件名为CTP Latest5 0 37 iso 我需要检查文件名中的字符串 37 因此 如果数字 37 大于我已有的版本 则只有我下载 下载文件后 我想将字符串
  • 将数据帧的行作为参数传递给函数,同时保持其他参数不变

    跟进将数据帧的行作为参数传递给 R 中的函数 并使用指定参数的列名称 我想使用不同的参数组合来训练以下模型 library xgboost library Matrix df lt data frame y sample 0 1 1000
  • 无法使用 Logitech C920 访问 cv::VideoCapture 的属性

    我正在使用 Logitech C920 和 OpenCV 开发一个小型网络摄像头应用程序 实际上 我可以从相机获取图像 对于给定的分辨率没有任何问题 但除了框架宽度和高度之外 我无法访问相机中的任何设置 我有以下代码 正如您所猜测的 该代码