cv2 imshow()中文标题乱码解决办法

本文介绍了如何使用Python和WindowsAPI函数,通过cv2库在视频捕捉过程中动态修改摄像头预览窗口的标题。作者提供了zh_ch_Titile函数,用于查找并更改窗口标题,确保只执行一次以避免句柄查找错误。

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

解决思路 先创建一个命名窗口  比如命名为‘aa’,然后使用Windows的api函数找到该窗口句柄,修改标题即可 注意 在循环部分一定保证只能运行该函数一次 因为第二次运行时候对已经修改的标题进行句柄查找会出错,因为标题已经被我们改了

例子 想该标题为中文名称“测试”,

import cv2
import time
import os
import codecs
import win32gui
import win32con
#参数是默认参数 可自行修改
def zh_ch_Titile(oldTitle,newTitle='中文',oneRun=False):
    if oneRun == False:
        #根据窗口名称查找其句柄 然后使用函数修改其标题 尽量选择一个不常见的英文名 防止误该已有#的窗口标题 初始化时通常取无意义的名字  比如这里取‘aa’
        handle = win32gui.FindWindow(0, oldTitle)
        win32gui.SetWindowText(handle, newTitle)
        oneRun= True
    return oneRun



widthCamara,heightCamara=640,480
cap=cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH,widthCamara)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,heightCamara)
#先命名一个窗口 后面我们便通过aa名称能找到该窗口句柄
#事先随便取一个英文名字 “aa”
cv2.namedWindow("aa")
nameChanged=False

while True:
    success,img=cap.read()
    cv2.imshow('aa', img)
    cv2.waitKey(1)
    #注意下面的是‘==’号
    #也可以改为
    #if not nameChanged:


    if nameChanged==False:
       nameChanged=zh_ch_Titile('aa',"测试",nameChanged)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值