【问题标题】:opencv videocapture fail to read frame from rtspopencv videocapture 无法从 rtsp 读取帧
【发布时间】:2017-04-08 03:43:56
【问题描述】:

我收到来自海康威视摄像机 rtsp 流的读取帧错误。 这是我要阅读的代码:

public void readImage(){
    VideoCapture capture = new VideoCapture(streamUrl);
    if(capture.isOpened()){
        Mat frame = new Mat();
        while(true){
            if(capture.read(frame)){
                System.out.println("frame read");
            }else{
                System.out.println("failed to read frame");
            }
        }
    }
}

使用上面的代码,如果来自流的图像的分辨率较低(704x576),我可以成功读取帧,但如果我的分辨率很高或者我运行一些并行任务,则捕获无法读取帧。在第一次读取循环中捕获失败后,我终止所有其他任务,然后捕获仍然无法读取,除非我重新创建另一个捕获(重新创建捕获对象)。我现在该怎么办? (当我尝试打开 cv2.4 和打开 cv3.2 时都会发生这种情况)

【问题讨论】:

    标签: opencv


    【解决方案1】:

    您可能希望在使用后释放内存。

    将代码frame.dispose();放在while循环结束后

    【讨论】:

    • Keon,您可以大声复制 OP 代码并使用它来制定您的答案,并确保 OP(问题/答案的原始海报)正确采用您提出的解决方案。现在它乍一看是评论 ;-)
    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 2016-11-06
    • 1970-01-01
    • 2014-05-07
    • 2016-02-12
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多