T_Sammy 2020-03-24 16:51 采纳率: 0%
浏览 1037

QT5 + opencv3.4.6 做的rtsp流读取问题

在VLC中可以正常访问的rtsp流


图片说明

代码中无法访问,请大神指点一下问题谢谢!

    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(getframe()));

    _videocap = cv::VideoCapture("rtsp://admin:123!@192.168.1.6");//大门摄像头
    qDebug() << "1111:" << _videocap.isOpened();

    double rate= _videocap.get(CV_CAP_PROP_FPS);
    qDebug() << "rate:" << rate;

    timer->start(33);//为避免出现延时累积,每33毫秒刷新界面

槽函数:

void CCamera::getframe()
{
    _videocap.read(_srcImge);//获取到一帧

    if(!_srcImge.data)//如果取不到数据,终止计时器
        timer->stop();

    Size dsize = Size(ui->LabDisp->width(), ui->LabDisp->height());
    cv::resize(_srcImge, _srcImge, dsize);

    cvtColor(_srcImge,_srcImge,CV_BGR2RGB);//这种更方便好用
    QImage image2=QImage((const unsigned char*)_srcImge.data,_srcImge.cols,_srcImge.rows,QImage::Format_RGB888);
    ui->LabDisp->setPixmap(QPixmap::fromImage(image2));
}

报错如下:

16:33:13: Starting E:\QT_src\build-CameraDisplay-Desktop_Qt_5_9_9_MinGW_32bit-Debug\debug\CameraDisplay.exe ...
1111: false
rate: 0
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(3.4.6) Error: Assertion failed (!ssize.empty()) in resize, file D:\opencv3.4.6\opencv\sources\modules\imgproc\src\resize.cpp, line 3718

虽然报错是opencv的resize函数问题,但我不清楚是不是这儿有问题。原因是写了个加载图片的demo是正常的。
我查了一下,说路径不对的很多,但是我这里似乎不是这个问题啊?

  • 写回答

3条回答 默认 最新

  • franzhong 2020-03-24 17:45
    关注

    把编译目录下的bin文件夹总的opencv_ffmpeg*.dll(*代表版本号,如3.4.5,就是opencv_ffmpeg345.dll)拷贝到exe所在路径或者环境变量目录下。再试一下

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题