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

Ubuntu 22.04下Qt后端OpenCV窗口标题显示乱码求助

OpenCV窗口标题在Ubuntu 22.04下乱码问题

Figure 1

以下代码在Ubuntu 24.04 + OpenCV 4.9.0 + Python 3.11.8环境中可正常显示窗口标题,但在同版本OpenCV与Python的Ubuntu 22.04环境下,窗口标题显示乱码:

import cv2 as cv 
img_c = cv.imread('candy.jpg', cv.IMREAD_COLOR)
cv.namedWindow('Image', cv.WINDOW_NORMAL)
cv.resizeWindow('Image', (600, 300))
cv.imshow('Image', img_c)
cv.setWindowTitle('Image', 'MyCandy img_c')
cv.waitKey(0)

环境说明:使用Anaconda,通过conda install -c conda-forge opencv安装OpenCV,无论是否提前调用cv.namedWindow(),使用cv.imshow()时都会出现该问题。


解决思路

  • 检查系统字体配置:Ubuntu 22.04默认字体可能对OpenCV窗口标题渲染支持不足,安装通用UTF-8支持字体:

    sudo apt update && sudo apt install fonts-dejavu-core fonts-noto
    

    安装后重启图形会话或系统再测试。

  • 切换OpenCV窗口后端:Ubuntu 22.04的GTK版本与conda包可能存在兼容性问题,强制使用Qt后端:
    在代码开头添加:

    cv.setWindowBackend(cv.WINDOW_QT)
    

    若conda安装的OpenCV无Qt支持,重新安装带Qt的版本:

    conda install -c conda-forge opencv qt
    
  • 指定标题编码格式:尝试将标题转为系统兼容的编码:

    title = 'MyCandy img_c'.encode('utf-8').decode('utf-8')
    cv.setWindowTitle('Image', title)
    

    或针对旧系统尝试latin-1编码:

    title = 'MyCandy img_c'.encode('latin-1').decode('latin-1')
    cv.setWindowTitle('Image', title)
    
  • 从源码编译OpenCV:如果conda包兼容性问题无法解决,编译时绑定系统原生库:

    1. 安装依赖:
      sudo apt install build-essential cmake git libgtk-3-dev libpng-dev libjpeg-dev libtiff-dev
      
    2. 克隆并编译指定版本:
      git clone https://github.com/opencv/opencv.git
      cd opencv && git checkout 4.9.0
      mkdir build && cd build
      cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON ..
      make -j$(nproc)
      sudo make install
      

    之后在conda环境中优先使用编译好的OpenCV。

  • 检查环境字符集:确保conda环境的字符集为UTF-8,终端执行:

    echo $LANG $LC_ALL
    

    若输出非UTF-8编码,在~/.bashrc或~/.zshrc中添加:

    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    

    重启终端后激活conda环境测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:58:22