C++ OpenCV GTK+;2.x错误
我已经按照以下步骤安装了OpenCV()。 在尝试编译一个示例后,我遇到了以下错误:C++ OpenCV GTK+;2.x错误,c++,opencv,cmake,makefile,C++,Opencv,Cmake,Makefile,我已经按照以下步骤安装了OpenCV()。 在尝试编译一个示例后,我遇到了以下错误: OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-r
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/nick/.Apps/opencv/modules/highgui/src/window.cpp, line 516
terminate called after throwing an instance of 'cv::Exception'
what(): /home/nick/.Apps/opencv/modules/highgui/src/window.cpp:516: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow
CMakeLists.txt
cmake_minimum_required(VERSION 2.8.4)
project(threadTest)
find_package( OpenCV REQUIRED )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pthread")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/home/nick/ClionProjects/threadTest")
set(SOURCE_FILES main.cpp)
add_executable(threadTest ${SOURCE_FILES})
target_link_libraries( threadTest ${OpenCV_LIBS} )
如何解决?首先检查libgtk2.0-dev是否安装正确。如果已安装aptitude软件包管理器,请运行以下操作:
sudo aptitude search libgtk2.0-dev
它应该像这样返回:
i libgtk2.0-dev - development files for the GTK+ library
p libgtk2.0-dev:i386 - development files for the GTK+ library
您需要再次生成文件。找到您的OpenCV文件夹。创建一个新文件夹并将其命名为release。进入这个文件夹。比如说
cd /home/user_name/OpenCv
mkdir Release
cd Release
现在使用cmake和以下命令进行构建:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..
在cmake过程中,请记住使用_GTK=打开。
在此步骤之后,输入命令
make
sudo make install
这应该可以解决您的问题。如果您破坏了libgtk2.0-dev的依赖关系,请使用aptitude安装libgtk2.0-dev的新副本
sudo aptitude install libgtk2.0-dev
@奥克西德龙/埃利奥特·米勒:
我有预装gtk 3的Ubuntu 16.04 LTS环境。
我在Caffe构建(主分支)中遇到了相同的错误,
尝试以下步骤,可能对你有用
sudo apt-get install libgtk-3-dev
cmake .. (WITH_GTK=ON and other settings),
make
宾果,错误消失了。。。在我的python caffe代码中
请注意:
CMAKE配置应该反映GTK+3.x,而不是GTK+2.x
GUI:
-- QT: NO
-- GTK+ 3.x: YES (ver 3.18.9)
-- GThread : YES (ver 2.48.2)
-- GtkGlExt: NO
-- OpenGL support: NO
-- VTK support: NO
如果使用OpenCV python pip包安装OpenCV,请注意以下注意事项,摘自
重要提示
MacOS和Linux控制盘目前有一些限制:
- 不支持视频相关功能(未使用FFmpeg编译)
- 例如
cv2.imshow()
将不起作用(不使用GTK+2.x或Carbon支持编译)
还要注意,要从其他源安装,首先必须删除opencv python包
为了在Ubuntu中安装OpenCV,我遵循了以下指南,它工作得非常好:
为了改进答案,我想用三个简单的步骤解释如何在Mac OS上修复此错误
删除已安装的OpenCV版本以避免以后出现混乱
pip3 uninstall opencv-python
将python版本降低到3.5(当前版本3.6与我们将用于安装OpenCV的conda存在问题)
最后,使用conda安装OpenCV的工作版本
conda install -c menpo opencv3
然后瞧:OpenCV将开始在您的Mac OS上工作(Siera 10.12.4)。我已通过替换
cvDestroyWindow("showImage");
借
我也有同样的问题,只是简单地解决了
没有必要先卸载它。对于我来说(Arch Linux、Anaconda with Python 3.6),从建议的频道menpo
或loopbio
安装并没有改变任何东西。我的解决办法是
安装pkg配置(sudo pacman-Syu pkg config
)
从环境中删除opencv(conda remove opencv
)和
从conda forge频道重新安装opencv(conda安装-c conda forge opencv
)
conda list
现在返回opencv3.3.0 py36_blas_openblas_203[blas_openblas]conda forge
并且所有使用cv2启动的窗口都工作正常。我已经解决了在Ubuntu 16.04上安装Anaconda 3的问题
我在python代码中使用了pycharm编辑器
我使用的是python 3.6版本
我用这些方法解决了这个问题
想法:我们需要从pycharm安装opencv contrib python包
我已经多次处理过这个问题,这就是迄今为止一直有效的方法:
conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
我尝试了上面提到的几个答案,在ubuntu中对我有用的答案在以下步骤中提到:
首先,通过在终端conda remove opencv
中键入以下命令,删除系统中安装的当前opencv包
如果您的python版本为3.6或更高版本,请将其更改为稳定版本,这可以通过键入conda install python=3.5
完成
稍后,通过在terminalconda install-c menpo opencv3
如果上面提到的不起作用,请尝试:
pip install opencv-python
用于python2,或
pip3 install opencv-python
对于python3,我使用的是windows操作系统。为了解决这个问题,我做了很多工作。最后,我刚刚重新安装了opencv和cmake,它没有任何错误。对于windows,只需卸载opencv即可
pip卸载opencv python
并重新安装
pip安装opencv python如果有人像我在Ubuntu上使用vcpkg安装opencv后那样出现在这里,那么vcpkg存在一个已知的问题,您最终会收到与本文顶部完全相同的错误消息,无法访问highgui:
OpenCV(4.3.0) Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow,
file .../vcpkg/buildtrees/opencv4/src/4.3.0-0c6047baf6.clean/modules/highgui/src/window.cpp, line 634
Caught exception: OpenCV(4.3.0) .../vcpkg/buildtrees/opencv4/src/4.3.0-0c6047baf6.clean/modules/highgui/src/window.cpp:634:
error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'
问题是在构建OpenCV时,vcpkg在构建选项-DWITH_GTK=OFF
中传递。公开问题:
解决方法如下:
sudo aptitude search libgtk2.0-dev
- 编辑文件
vcpkg/ports/opencv4/portfile.cmake
- 找到显示为
-DWITH_GTK=OFF
的行,并将其更改为显示为-DWITH_GTK=ON
- 运行
/vcpkg删除opencv4
- 运行
sudo apt get install libgtk2.0-dev pkg config
- 使用
/vcpgg install opencv4
或您使用的任何vcpgg命令重新安装OpenCV
我的问题在安装opencv contrib python后得到解决
pip install opencv-contrib-python
只是阅读错误信息?它表示:该功能未实现。使用[..]GTK+2.x[..]支持重建库。如果您使用的是Ubuntu或Debian,请安装libgtk2.0-dev和pkg-config,然后重新运行cmake或configure脚本。如果您没有使用Ubuntu或Debian,请尝试找出如何调用GTK 2.0开发人员包,并将其与pkg-config一起安装。我已经安装了libgtk2.0-dev,但它没有帮助:(CMke找到了吗?查看一下输出。也许你必须将Gtk的路径传递到CMake。谢谢。基本上,为了解决这个问题,我必须用Gtk重新编译并安装OpenCV,且Gtk=ON。在2017年不起作用。即使完成了所有这些操作
pip install opencv-contrib-python