OpenCV GTK+2.x 错误 - "Unspecified error (The function is not implemented...)"
OpenCV GTK+2.x error - "Unspecified error (The function is not implemented...)"
我按照这些步骤安装了 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
应该return像这样:
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 中输入 WITH_GTK=ON
。
这一步之后,输入命令,
make
sudo make install
这应该可以解决您的问题。如果您破坏了 libgtk2.0-dev 的依赖关系,请使用 aptitude 安装 libgtk2.0-dev 的新副本。
sudo aptitude install libgtk2.0-dev
我预装了 Ubuntu 16.04 LTS (Xenial Xerus) environment with GTK 3。
我在 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,请注意以下摘自 opencv-python 的注释:
IMPORTANT NOTE
macOS and Linux wheels have currently some limitations:
- video related functionality is not supported (not compiled with FFmpeg)
- 例如
cv2.imshow()
将不起作用(未使用 GTK+ 2.x 或 Carbon 支持编译)
另请注意,要从其他来源安装,首先必须删除 opencv-python 包。
为了在 Ubuntu 中安装 OpenCV,我遵循了这个指南,它运行得非常好:Ubuntu 16.04: How to install OpenCV
为了改进 我想通过三个简单的步骤解释如何在 macOS 上修复此错误。
删除已安装的 OpenCV 版本以避免以后搞砸
pip3 uninstall opencv-python
将您的 Python 版本降低到 3.5(当前版本 3.6 与我们将用于安装 OpenCV 的 Conda 有问题)
conda install python=3.5
最后,使用Conda安装OpenCV的工作版本
conda install -c menpo opencv3
然后瞧瞧:OpenCV 将开始在您的 macOS 上运行 (macOS v10.12.4 (Sierra))。
我已通过更换
解决了这个问题
cvDestroyWindow("showImage");
来自
cvDestroyWindow("ShowImage");
我遇到了同样的问题,并通过 reinstalling opencv 简单地解决了它。
不需要先卸载
对我来说(Arch Linux,Anaconda Python 3.6),从建议的渠道 menpo
或 loopbio
安装并没有改变任何东西。我的解决方案是
- 安装 pkg-config (
sudo pacman -Syu pkg-config
),
- 从环境中删除 opencv (
conda remove opencv
) 和
- re-install 来自 conda-forge 频道的 opencv (
conda install -c conda-forge opencv
)
conda list
现在 returns opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge
并且使用 cv2 启动的所有 windows 都工作正常。
我已经使用 Anaconda 3 installing on Ubuntu 16.04 (Xenial Xerus) 解决了问题。
我的 Python 代码使用了 PyCharm 编辑器。
我使用的是 Python 3.6 版本。
我使用这些流程解决了问题。
IDEA:我们需要从 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
. 将其更改为稳定版本。
- 稍后,通过在终端中输入以下内容再次安装 opencv 包
conda install -c menpo opencv3
如果前面的答案中提到的方法不起作用,请尝试:
pip install opencv-python
对于 Python 2,或
pip3 install opencv-python
Python3.
对于Windows,只需卸载OpenCV包:
pip uninstall opencv-python
并重新安装:
pip install opencv-python
在 Ubuntu 上使用 vcpkg 安装 OpenCV 后,vcpkg 存在一个已知问题,您最终会收到与此 post 顶部完全相同的错误消息,无法访问高贵:
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'
问题是 vcpkg 在构建 OpenCV 时传入了构建选项 -DWITH_GTK=OFF
。未决问题:https://github.com/microsoft/vcpkg/issues/12621
解决方法如下:
- 编辑文件
vcpkg/ports/opencv4/portfile.cmake
- 找到
-DWITH_GTK=OFF
行并将其更改为 -DWITH_GTK=ON
- 运行
./vcpkg remove opencv4
- 运行
sudo apt-get install libgtk2.0-dev pkg-config
- 使用
./vcpkg install opencv4
或您使用的任何 vcpkg 命令重新安装 OpenCV
我的问题在安装 opencv-contrib-python 后解决了:
pip install opencv-contrib-python
我遇到了同样的问题,卸载 opencv-python 并重新安装后已解决。
pip uninstall opencv-python
pip install opencv-python
试试这个。它对我有用
sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
pip install opencv-contrib-python
使用上述命令重新安装和安装解决了我的问题,但在关闭所有 pyhton 和 anaconda 实例之后,因为显然我的系统中保留了该库的缓存版本。
因此,卸载 opencv(尝试使用 pip 和 conda),关闭 IDE 并重新启动它,检查是否可以导入 opencv。如果还可以导入,试试运行代码:
help(cv2)
并检查文件的存储位置并删除该文件夹。
重复该过程,直到您确定它已卸载,以便您可以重新安装 opencv 完整包(选项 2 - 参见 https://pypi.org/project/opencv-python/)
我已经用这个解决了我的问题,试试吧
pip install opencv-python-headless==4.5.3.56
pip install opencv-contrib-python==4.5.3.56
pip install opencv-python==4.5.3.56
我遇到了同样的问题,在卸载 opencv-python 版本 4 然后安装 OpenCV 版本 3 后已解决。
pip 安装opencv-python==3.4.9.33
我按照这些步骤安装了 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
应该return像这样:
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 中输入 WITH_GTK=ON
。
这一步之后,输入命令,
make
sudo make install
这应该可以解决您的问题。如果您破坏了 libgtk2.0-dev 的依赖关系,请使用 aptitude 安装 libgtk2.0-dev 的新副本。
sudo aptitude install libgtk2.0-dev
我预装了 Ubuntu 16.04 LTS (Xenial Xerus) environment with GTK 3。
我在 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,请注意以下摘自 opencv-python 的注释:
IMPORTANT NOTE
macOS and Linux wheels have currently some limitations:
- video related functionality is not supported (not compiled with FFmpeg)
- 例如
cv2.imshow()
将不起作用(未使用 GTK+ 2.x 或 Carbon 支持编译)
另请注意,要从其他来源安装,首先必须删除 opencv-python 包。
为了在 Ubuntu 中安装 OpenCV,我遵循了这个指南,它运行得非常好:Ubuntu 16.04: How to install OpenCV
为了改进
删除已安装的 OpenCV 版本以避免以后搞砸
pip3 uninstall opencv-python
将您的 Python 版本降低到 3.5(当前版本 3.6 与我们将用于安装 OpenCV 的 Conda 有问题)
conda install python=3.5
最后,使用Conda安装OpenCV的工作版本
conda install -c menpo opencv3
然后瞧瞧:OpenCV 将开始在您的 macOS 上运行 (macOS v10.12.4 (Sierra))。
我已通过更换
解决了这个问题cvDestroyWindow("showImage");
来自
cvDestroyWindow("ShowImage");
我遇到了同样的问题,并通过 reinstalling opencv 简单地解决了它。
不需要先卸载
对我来说(Arch Linux,Anaconda Python 3.6),从建议的渠道 menpo
或 loopbio
安装并没有改变任何东西。我的解决方案是
- 安装 pkg-config (
sudo pacman -Syu pkg-config
), - 从环境中删除 opencv (
conda remove opencv
) 和 - re-install 来自 conda-forge 频道的 opencv (
conda install -c conda-forge opencv
)
conda list
现在 returns opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge
并且使用 cv2 启动的所有 windows 都工作正常。
我已经使用 Anaconda 3 installing on Ubuntu 16.04 (Xenial Xerus) 解决了问题。
我的 Python 代码使用了 PyCharm 编辑器。
我使用的是 Python 3.6 版本。
我使用这些流程解决了问题。
IDEA:我们需要从 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
. 将其更改为稳定版本。
- 稍后,通过在终端中输入以下内容再次安装 opencv 包
conda install -c menpo opencv3
如果前面的答案中提到的方法不起作用,请尝试:
pip install opencv-python
对于 Python 2,或
pip3 install opencv-python
Python3.
对于Windows,只需卸载OpenCV包:
pip uninstall opencv-python
并重新安装:
pip install opencv-python
在 Ubuntu 上使用 vcpkg 安装 OpenCV 后,vcpkg 存在一个已知问题,您最终会收到与此 post 顶部完全相同的错误消息,无法访问高贵:
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'
问题是 vcpkg 在构建 OpenCV 时传入了构建选项 -DWITH_GTK=OFF
。未决问题:https://github.com/microsoft/vcpkg/issues/12621
解决方法如下:
- 编辑文件
vcpkg/ports/opencv4/portfile.cmake
- 找到
-DWITH_GTK=OFF
行并将其更改为-DWITH_GTK=ON
- 运行
./vcpkg remove opencv4
- 运行
sudo apt-get install libgtk2.0-dev pkg-config
- 使用
./vcpkg install opencv4
或您使用的任何 vcpkg 命令重新安装 OpenCV
我的问题在安装 opencv-contrib-python 后解决了:
pip install opencv-contrib-python
我遇到了同样的问题,卸载 opencv-python 并重新安装后已解决。
pip uninstall opencv-python
pip install opencv-python
试试这个。它对我有用
sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
pip install opencv-contrib-python
使用上述命令重新安装和安装解决了我的问题,但在关闭所有 pyhton 和 anaconda 实例之后,因为显然我的系统中保留了该库的缓存版本。
因此,卸载 opencv(尝试使用 pip 和 conda),关闭 IDE 并重新启动它,检查是否可以导入 opencv。如果还可以导入,试试运行代码:
help(cv2)
并检查文件的存储位置并删除该文件夹。 重复该过程,直到您确定它已卸载,以便您可以重新安装 opencv 完整包(选项 2 - 参见 https://pypi.org/project/opencv-python/)
我已经用这个解决了我的问题,试试吧
pip install opencv-python-headless==4.5.3.56
pip install opencv-contrib-python==4.5.3.56
pip install opencv-python==4.5.3.56
我遇到了同样的问题,在卸载 opencv-python 版本 4 然后安装 OpenCV 版本 3 后已解决。
pip 安装opencv-python==3.4.9.33