问题描述
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 身份安装)。
如果将 imshow
和 waitKey
行注释掉,程序不会显示任何错误,所以我认为问题与它有某种关系。
我的 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 后端(如果未启用)。