3

OpenCV を使用する Python スクリプトで、名前付きウィンドウを別の画面/ディスプレイで開きたいと考えています。

私は Linux を使用しており、X は 2 つのディスプレイを持つように設定されています。DISPLAY環境変数をそれぞれ:0.0またはに設定することで、名前付きウィンドウがデフォルトで開くディスプレイを制御できます:0.1。ただし、私がやりたいのは、名前付きウィンドウを:0.01つと 1 つ開いて:0.1、それぞれを継続的に更新できるようにすることです。

を見つけましXlibた。たとえば、どの画面がデフォルトの画面かを照会できますが、変更できません。また、環境変数を次のようos.environ['DISPLAY'] = ':0.0'に更新することもできますが、当然のことながら、後で開いたウィンドウには何の影響もありません。

4

1 に答える 1

2

を使用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()
于 2013-06-03T20:28:57.857 に答える