OpenCV GTK + 2.x错误

Max*_*icu 17 c++ opencv makefile cmake

我按照这些步骤()安装了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-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
Run Code Online (Sandbox Code Playgroud)

的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} )
Run Code Online (Sandbox Code Playgroud)

怎么解决?

小智 20

首先检查libgtk2.0-dev是否安装正确.如果已安装aptitude包管理器,请运行以下命令:

sudo aptitude search libgtk2.0-dev
Run Code Online (Sandbox Code Playgroud)

它应该像这样返回:

i  libgtk2.0-dev              - development files for the GTK+ library 
p  libgtk2.0-dev:i386         - development files for the GTK+ library
Run Code Online (Sandbox Code Playgroud)

您需要再次构建文件.找到您的OpenCV文件夹.创建一个新文件夹并将其命名为release.进入此文件夹.例如

cd /home/user_name/OpenCv
mkdir Release
cd Release
Run Code Online (Sandbox Code Playgroud)

现在使用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 ..
Run Code Online (Sandbox Code Playgroud)

记得WITH_GTK=ON在cmake期间放.完成此步骤后输入命令,

make
sudo make install
Run Code Online (Sandbox Code Playgroud)

这应该可以解决您的问题.如果您已经破坏了libgtk2.0-dev的依赖关系,那么使用aptitude安装libgtk2.0-dev的新副本.

sudo aptitude install libgtk2.0-dev
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.基本上,为了解决这个问题,我不得不重新编译并使用GTK安装OpenCV,**WITH_GTK = ON**. (4认同)
  • 在2017年不起作用.即使完成所有这些步骤,我仍然得到gtk错误,不能做cv2.imshow. (4认同)

Nic*_*man 11

如果您使用opencv-python pip包安装了OpenCV,请注意以下注释,取自https://pypi.python.org/pypi/opencv-python

重要说明 MacOS和Linux车轮目前存在一些限制:

  • 不支持视频相关功能(不使用FFmpeg编译)
  • 例如cv2.imshow()不起作用(不使用GTK + 2.x或Carbon支持编译)

另请注意,要从其他源安装,首先必须删除opencv-python包

要在Ubuntu中安装OpenCV,我遵循了本指南,它运行得非常好:http: //www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


小智 7

对于 Windows,只需卸载 OpenCV 包:

pip uninstall opencv-python
Run Code Online (Sandbox Code Playgroud)

并重新安装:

pip install opencv-python
Run Code Online (Sandbox Code Playgroud)


hri*_*.to 5

为了改善@Nic Szer的答案,我想通过三个简单的步骤来说明如何在Mac OS上修复此错误。

  1. 删除已安装的OpenCV版本,以免日后混乱

    pip3 uninstall opencv-python 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将您的python版本降低到3.5(当前版本3.6的conda存在问题,我们将用它来安装OpenCV)

    conda install python=3.5
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后,使用conda安装OpenCV的工作版本

    conda install -c menpo opencv3 
    
    Run Code Online (Sandbox Code Playgroud)

然后说吧:OpenCV将开始在您的Mac OS(Siera 10.12.4)上运行。


Ahm*_* J. 5

如果前面的答案中提到的方法不起作用,请尝试:

\n
pip install opencv-python\n
Run Code Online (Sandbox Code Playgroud)\n

对于 Python\xc2\xa02,或

\n
pip3 install opencv-python\n
Run Code Online (Sandbox Code Playgroud)\n

对于 Python\xc2\xa03。

\n