乒乓女孩 2021-07-22 15:25 采纳率: 100%
浏览 421
已采纳

python在多线程用cv2的imshow显示不出窗口的问题

代码如下,运行之后第一次可以显示图片,关闭之后再打开就显示不了了,但从打印信息来看是可以运行显示的线程的


import cv2
import numpy as np
import threading
from easygui import *
img1 = cv2.imread('01.png')
img2 = cv2.imread('02.png')
img_show=[True]
def img1_method():
    print('打开img1')
    while img_show[0]:
       cv2.imshow("img1",img1)
       cv2.waitKey(5)
    print('关闭img1')
def img2_method():
    print('打开img2')
    while img_show[0]:
       cv2.imshow("img2",img2)
       cv2.waitKey(5)
    print('关闭img2')
def open_close():
    while True:
        choices = ['[1]打开', '[2]关闭', '[3]退出']
        choice=buttonbox(msg='请选择', title='cv2测试', choices=choices,
                  default_choice=choices[2], cancel_choice=choices[2], callback=None, run=True)
        choose=choices.index(choice)+1
        if choose==1:
            img_show[0]=True
            threading.Thread(target=img1_method).start()
            threading.Thread(target=img2_method).start()
        elif choose==2:
            img_show[0]=False
        else:
            break

threading.Thread(target=img1_method).start()
threading.Thread(target=img2_method).start()
threading.Thread(target=open_close).start()
  • 写回答

1条回答 默认 最新

  • 乒乓女孩 2021-07-22 16:17
    关注

    已解决

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月22日
  • 创建了问题 7月22日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系