微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cvWaitKey:该功能未实现使用 Windows、GTK+ 2.x 或 Carbon 支持重建库

如何解决cvWaitKey:该功能未实现使用 Windows、GTK+ 2.x 或 Carbon 支持重建库

使用 OpenCV,我试图从相机获取视频流,但出现此错误

openopenCV(3.4.3) Error: Unspecified error (该函数没有实现。使用 Windows、GTK+ 2.x 或 Carbon 支持重建库。如果你使用的是 Ubuntu 或 Debian,请安装 libgtk2.0-dev 和 pkg -config,然后在 cvWaitKey 中重新运行 cmake 或配置脚本),文件 /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

解决方法

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。