The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support.

Ubuntu14.04安装好opencv3.0.0之后,进行测试:

$./DisplayImage lena.jpg

出现以下问题:

OpenCV Error: Unspecified error (The function is notimplemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. Ifyou are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-runcmake or configure script) in cvNamedWindow, file/home/aborn/software/OpenCV-3.0.0/modules/highgui/src/window.cpp, line …

 

网上给的解释是: GTK+2.x要先于OpenCV安装(You should remove the current installation of opencv from yoursystem; rebuild your opencv lib after installing gtk dev lib in thecorrect path; and reinstall the compiled opencv lib. )

 

解决方法:

1.卸载opencv

(1)移除式卸载:apt-getremove 软件名1 软件名2 …;(移除软件包)

(2)清除式卸载:apt-get--purge remove 软件名1 软件名2...;(同时清除配置)

建议选择清除式卸载

(3)卸载不管用的话,直接到opencv解压目录把解压出的opencv包删掉

 

2.查看没安装的文件,没装的装上

之前安装时的命令:

sudo apt-get install build-essential cmakelibgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 

查看方法:

$ dpkg –listfiles cmake(查询系统中属于cmake的文件)

$ dpkg –listfiles libgtk2.0-dev(查询系统中属于libgtk2.0-dev的文件)

$ dpkg –listfiles 其他包名

 

3.重新安装opencv并进行测试

可参考文章:Ubuntu14.04安装opencv3.0.0:

http://blog.youkuaiyun.com/qingyanyichen/article/details/51621982

<think>嗯,用户遇到了一个OpenCV的错误提示:“error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.”。这个问题看起来和图像显示功能相关,特别是涉及GUI模块的部分。首先,我需要确认这个错误出现的场景,通常是在调用像cv2.imshow()这样的函数时发生的,因为这些函数依赖于图形界面库的支持。 接下来,可能的原因有几个方面。首先,用户可能通过pip安装的OpenCV版本是精简版(比如opencv-python-headless),这个版本不包含GUI功能,所以无法使用imshow之类的函数。这时候需要确认用户安装的是哪个包,如果是headless版,需要卸载后安装完整版。 另一个可能性是用户在从源码编译OpenCV时,没有正确配置GUI后端的支持,比如没有安装GTK或Cocoa的开发依赖库,导致编译时相关功能被禁用。这时候需要重新编译并确保启用了必要的选项。 另外,有时候系统缺少动态链接库,比如在Linux下缺少GTK的相关库文件,或者路径配置不正确,导致运行时找不到这些库。这时候需要检查系统是否安装了必要的依赖,并确保环境变量设置正确。 解决方案方面,首先应该建议用户检查安装的OpenCV版本,如果是headless版,更换为完整版。然后,如果是自行编译的,需要重新配置和编译,确保GUI支持被启用。对于依赖项缺失的情况,需要安装对应的系统包。最后,如果问题依然存在,可能需要更深入的排查,比如环境变量或路径问题。 还需要考虑用户的操作系统,比如Windows、Linux还是macOS,不同的系统对应的GUI后端可能不同,解决步骤也会有所差异。例如,在Ubuntu上可能需要安装libgtk2.0-dev,而macOS则需要Cocoa的支持。 最后,要提醒用户在重新安装或编译后,确认Python环境是否正确,避免多个版本的OpenCV冲突。如果用户对编译过程不熟悉,推荐使用预编译的完整版本来节省时间和避免复杂操作。</think>遇到 `The function is not implemented` 错误时,通常是因为 OpenCV 的 GUI 模块(如窗口显示、按键监听等功能)未正确编译或缺少依赖库。以下是逐步排查和解决方案: --- ### **1. 错误原因分析** - **根本原因**:OpenCV 的 `highgui` 模块需要图形界面库(如 GTK、Windows API 或 Cocoa)支持,但当前安装的版本未包含这些依赖。 - **常见场景**: - 通过 `pip install opencv-python-headless` 安装了无 GUI 支持的版本。 - 自行编译 OpenCV 时未启用 GUI 后端(如 GTK、Cocoa 或 Windows API)。 --- ### **2. 解决方案** #### **情况一:通过 pip 安装的 OpenCV** - **步骤 1:检查当前安装的版本** ```bash pip list | grep opencv ``` 如果输出包含 `opencv-python-headless`,说明安装了无 GUI 的版本。 - **步骤 2:卸载 headless 版本并安装完整版** ```bash pip uninstall opencv-python-headless pip install opencv-python ``` #### **情况二:自行编译 OpenCV** 若通过源码编译,需确保启用 GUI 后端: - **Linux(GTK+)**: ```bash sudo apt-get install libgtk2.0-dev # 安装 GTK 开发库 cmake -D WITH_GTK=ON ... # 编译时启用 GTK ``` - **macOS(Cocoa)**: ```bash cmake -D WITH_COCOA=ON ... ``` - **Windows**: ```bash cmake -D WITH_WIN32UI=ON ... ``` #### **情况三:依赖库缺失** - **Linux**:安装缺失的库 ```bash sudo apt-get install libgtk2.0-0 libsm6 libxext6 ``` - **macOS**:确保 Xcode 命令行工具已安装 ```bash xcode-select --install ``` --- ### **3. 验证修复** 运行以下 Python 代码测试 GUI 功能: ```python import cv2 img = cv2.imread("test.jpg") cv2.imshow("Test Window", img) cv2.waitKey(0) ``` 如果不再报错且窗口正常显示,则修复成功。 --- ### **4. 其他可能性** - **环境变量冲突**:检查 `LD_LIBRARY_PATH`(Linux/macOS)或 `PATH`(Windows)是否包含 OpenCV 的库路径。 - **多版本 OpenCV 冲突**:确保 Python 环境中仅有一个 OpenCV 版本。 --- ### **总结** - 优先通过 `pip install opencv-python` 安装官方预编译的完整版。 - 自行编译时需明确启用 GUI 后端(如 GTK、Cocoa)。 - 若问题未解决,建议清理环境后重新安装。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值