Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV GTK+;2.x错误_C++_Opencv_Cmake_Makefile - Fatal编程技术网

C++ OpenCV GTK+;2.x错误

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()。 在尝试编译一个示例后,我遇到了以下错误:

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
    完成
  • 稍后,通过在terminal
    conda 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