【环境配置】opencv不能show

在运行Python代码时使用cv2.imshow显示图像遇到错误,原因是安装了opencv-python-headless导致的库不支持。解决方案是卸载现有的OpenCV库,然后安装opencv-python、opencv-python-contrib。对于Ubuntu或Debian用户,需要安装libgtk2.0-dev和pkg-config来支持GUI显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

cv2.imshow 显示图像时报错,无法显示图像

  0%|                                                                                                                                                                          | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/xxx/workspace/inference.py", line 380, in <module>
    cv2.imshow('result', img)
cv2.error: OpenCV(4.8.0) /io/opencv/modules/highgui/src/window.cpp:1272: 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 'cvShowImage'

貌似因为之前 pip3 install opencv-python-headless 安装后导致版本不一致了。

解决方案

pip3 uninstall opencv-python
pip3 install opencv-python-contrib
pip3 install opencv-python

参考引用

解决问题:If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then…‘cvShowImage‘

### 配置 Anaconda 环境下 C++ 使用 OpenCV #### 安装 Miniconda 或 Anaconda 对于希望在 Anaconda 环境中使用 C++OpenCV 的开发者来说,首先需要安装 Miniconda 或完整的 Anaconda 发行版。Miniconda 是一个轻量级的选择,仅包含 Python 解释器和包管理工具 `conda`;而 Anaconda 则包含了更多预装的数据科学库。 #### 创建并激活 Conda 环境 创建一个新的 conda 环境可以保持项目的依赖项隔离。通过命令行输入如下指令来创建名为 `cpp_opencv_env` 的新环境: ```bash conda create --name cpp_opencv_env ``` 接着激活该环境: ```bash conda activate cpp_opencv_env ``` #### 安装必要的编译工具链 为了让 C++ 项目能够顺利编译,在 Windows 上通常推荐安装 Visual Studio 及其附带的 MSBuild 工具集。可以通过 Microsoft 提供的官方渠道下载适合版本的 Visual Studio 并确保选择了 .NET desktop development 组件以及其他所需的开发工作负载[^1]。 #### 获取适用于 C++OpenCV 库 Anaconda 主要面向 Python 用户,默认情况下并不提供可以直接用于 C++ 开发的 OpenCV 版本。因此,有两种方法可以获得支持 C++ API 的 OpenCV: - **手动编译**: 下载源码后按照官方文档说明自行编译生成静态/动态链接库文件; - **第三方通道获取预编译二进制包**: 访问特定于 C++ 的社区维护频道或者寻找其他可信资源提供的预编译版本。 如果选择第二种方式,则可能无法直接利用 conda 来完成这一步骤,而是需要访问像 GitHub 这样的平台查找合适的发行版,并将其解压至适当位置以便后续集成到自己的工程项目当中[^4]。 #### 设置环境变量 无论采用哪种途径获得 OpenCV 库,都需要设置系统的 PATH 环境变量指向包含 DLL 文件的路径(如果是共享库的话),这样才能让运行时加载这些外部函数库。此外,还需要告知 IDE 如何找到头文件(.h/.hpp),即修改项目属性里的附加包含目录选项。 #### 测试配置是否成功 编写一段简单的 C++ 程序读取图片并显示出来作为验证手段之一。下面是一个基本的例子: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main(int, char**) { Mat image; image = imread("lena.jpg", IMREAD_COLOR); // Read the file if (image.empty()) { // Check for invalid input printf("Could not open or find the image\n"); return -1; } namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display. imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait indefinitely until keypress return 0; } ``` 上述代码片段展示了如何加载一幅图像并通过窗口展示它。当一切正常运作时,应该能看到所选图片被正确渲染在一个弹出的小窗格内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老周有AI~算法定制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值