You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04下cv2.imshow无法正常运行问题求助

问题:Ubuntu 18.04下cv2.imshow无法打开窗口,脚本无响应

运行以下OpenCV代码时,图片窗口无法打开,脚本挂起只能手动终止且无报错;cv2.imread功能正常,能读取图片为numpy数组;重装虚拟环境、更换编辑器(PyCharm/VSCode/Jupyter)均无法解决,Jupyter内核直接崩溃:

import cv2

img = cv2.imread('images/8d47d369_2022-10-06_18-18-30_0.jpg')
print(img)
if img is None:
    raise RuntimeError('Could not read image')

cv2.imshow('Original image', img)
cv2.waitKey(0)

解决方案

1. 检查OpenCV GUI后端并安装缺失依赖

Ubuntu 18.04下OpenCV的GUI功能依赖GTK/Qt库,可能存在依赖缺失或后端配置问题:

  • 终端运行以下命令查看OpenCV编译信息中的GUI后端:
    python -c "import cv2; print(cv2.getBuildInformation())"
    
    找到GUI部分,确认是否有GTK+ 3.x或Qt启用。
  • 安装必要的GUI依赖包:
    sudo apt-get update && sudo apt-get install libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev
    

2. 强制指定GUI后端环境变量

Ubuntu下可能存在Qt平台插件冲突,可在代码开头添加环境变量指定后端:

import os
# 强制使用xcb后端解决Qt显示问题
os.environ['QT_QPA_PLATFORM'] = 'xcb'
import cv2

img = cv2.imread('images/8d47d369_2022-10-06_18-18-30_0.jpg')
if img is None:
    raise RuntimeError('Could not read image')

cv2.imshow('Original image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()  # 添加此命令确保窗口正常关闭

或者在终端运行脚本前先设置环境变量:

export QT_QPA_PLATFORM=xcb
python your_script.py

3. 使用Matplotlib替代cv2.imshow

如果OpenCV的GUI功能仍无法正常工作,可改用Matplotlib显示图片(需注意颜色空间转换):

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('images/8d47d369_2022-10-06_18-18-30_0.jpg')
if img is None:
    raise RuntimeError('Could not read image')

# OpenCV默认读取为BGR格式,Matplotlib使用RGB格式,需转换
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.title('Original image')
plt.axis('off')  # 隐藏坐标轴
plt.show()

4. 确认未安装headless版本的OpenCV

若误装了无GUI支持的opencv-python-headless,需卸载后重新安装带GUI的版本:

pip uninstall opencv-python-headless -y
pip install opencv-python

内容的提问来源于stack exchange,提问作者Vlad Tkalenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:41:31