繁体   English   中英

cv2.imshow()在另一个屏幕上

[英]cv2.imshow() on a different screen

在使用OpenCV的Python脚本中,我想在不同的屏幕/显示器上打开命名窗口。

我在Linux上,X设置为有两个显示器。 我可以通过将环境变量DISPLAY分别设置为:0.0:0.1来控制默认打开哪个名为windows的DISPLAY 但是,我想要做的是打开一个命名窗口:0.0和一个打开:0.1并且能够连续更新每个窗口。

我找到了Xlib ,它让我查询例如哪一个是默认屏幕,但我无法更改它。 此外,我可以更新环境变量,例如os.environ['DISPLAY'] = ':0.0' ,但不出所料,这对后来打开的窗口没有任何影响。

使用multiprocessing.Process似乎可以解决问题。 以下将显示图片:0.0:0.1显示:

import os
import time
from multiprocessing import Process
import cv2

def f(display):
    os.environ['DISPLAY'] = display
    print(os.environ['DISPLAY'])
    a = cv2.imread('avatar.png')
    cv2.imshow('window on %s'%display, a)
    cv2.waitKey(1000)
    time.sleep(10)

Process(target=f, args=(':0.0',)).start()
Process(target=f, args=(':0.1',)).start()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM