ChenWu_lyz
2021-12-02 14:30
采纳率: 66.7%
浏览 154

如何利用opencv读取视频流每帧图像特定位置的数据?

我有一个用硬触发拍照的摄像头,摄像头软件在传回图像的


```c
imageData+0x18

位置写入的开始曝光的时间我现在就想读取他。
我现在用打开图片的方式做测试,看能不能读取到图片中的数据,但失败了

```c++
    IplImage *frame = cvLoadImage("./2021080813114602676-10.jpg");

    union {unsigned int i;unsigned char c[4];} ui_c[2];
    unsigned char *s=(unsigned char *)frame->imageData+0x18;

    unsigned int t1[2];
    ui_c[0].c[0]=s[3];ui_c[0].c[1]=s[2]; ui_c[0].c[2]=s[1];ui_c[0].c[3]=s[0];
    ui_c[1].c[0]=s[7];ui_c[1].c[1]=s[6]; ui_c[1].c[2]=s[5];ui_c[1].c[3]=s[4];

   t1[0]=ui_c[0].i; t1[1]=ui_c[1].i;

我现在用这段代码读取的数据好像不对,下面是显示结果的代码:


```c++
     QString sMsg = QString("[%1]t1[0]->%2;t2[0]->%3")
                .arg(QDateTime::currentDateTime().toString(tr("yyyy-MM-dd hh:mm:ss.zzz")))
                .arg(QString::number(t1[0], 'g', 12))
                .arg(QString::number(t1[1], 'g', 12));
      fun.saveQStringToFile(strMessageFile, sMsg);


得到的结果是
```c
t1[0]=2004318072;t2[0]=2021161080

但实际应该是464554,467415。
我用的是opencv3.4.14,自己编译的,是release版本

我就希望可以得到正确的数据。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • ChenWu_lyz 2021-12-03 10:18

    想得到视频流的二进制数据,难道只能使用cvcamSetProperty,调用回调函数吗?大神们呀,在线等

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题