【问题标题】:cvWaitKey: The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon supportcvWaitKey:该功能未实现。使用 Windows、GTK+ 2.x 或 Carbon 支持重建库
【发布时间】:2021-07-02 07:21:46
【问题描述】:

使用 OpenCV,我试图从摄像头获取视频流,但出现此错误:

openOpenCV(3.4.3) 错误:未指定错误(该功能未实现。使用 Windows、GTK+ 2.x 或 Carbon 支持重建库。如果您在 Ubuntu 或 Debian 上,请安装 libgtk2.0-dev 和 pkg -config,然后重新运行 cmake 或配置脚本)在 cvWaitKey,文件 /home/Ulugbe/Downloads/Telegram Desktop/opencv-3.4.3/modules/highgui/src/window.cpp,第 698 行

在抛出 'cv::Exception' 实例后调用终止

what(): OpenCV(3.4.3) /home/Ulugbe/Downloads/Telegram Desktop/opencv-3.4.3/modules/highgui/src/window.cpp:698: error: (-2: Unspecified error)该功能未实现。使用 Windows、GTK+ 2.x 或 Carbon 支持重建库。如果您在 Ubuntu 或 Debian 上,请安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或在函数 'cvWaitKey' 中配置脚本

这是我的代码:

#include <opencv2/opencv.hpp>
#include <dlib/any.h>
#include <iostream>

int main (int argc, char **argv)
{
    
    std::cout << cv::getBuildInformation() << std::endl;
    cv::VideoCapture video(0);
    // video.open("/home/Ulugbe/oson/ulugbek_face.mp4");
    if(video.isOpened())
        std::cout<<"open";
    
    cv::Mat frame;
    video.read(frame);

    cv::imshow("image", frame);
    cv::waitKey(0);

    video.release();

    return 0;
}

我不明白这个错误,因为消息中的opencv版本不适合我当前的版本,并且错误中显示的路径也不存在(但我记得它最初安装在那里但后来被卸载了并以 root 身份安装)。

如果注释掉imshowwaitKey 行,程序不会显示任何错误,所以我认为问题与它有某种关系。

我的 NetBeans 配置的屏幕截图: compiler properties linker properties

【问题讨论】:

    标签: opencv c++11 netbeans video-capture


    【解决方案1】:

    路径仍然“存在”,因为它存储在您构建的库中。它被保留是因为它是有用的调试信息。

    您在没有任何 GUI 支持的情况下构建了 OpenCV。这就是错误的意思。它还说:

    使用 Windows、GTK+ 2.x 或 Carbon 支持重建库。如果您在 Ubuntu 或 Debian 上,请安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或在函数 'cvWaitKey' 中配置脚本

    所以你应该重建 OpenCV。运行 cmake-gui 并查看输出以了解哪些 GUI 后端可能是可能的,以及导致它们不可用的原因。浏览设置/变量并启用 GUI 后端(如果未启用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-11
      • 2018-11-19
      • 2015-04-30
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多