2017-10-18 20 views
0

無限ループでcv2.imshow()コマンドを更新しています。ウィンドウが常にディスプレイの上にあり、小さな部分が見えないため、ウィンドウ位置を操作したいと思います。openCVでimshow()とmoveWindow()をpythonで結合するには?

私のタスクでは、cv2.moveWindow()コマンドは素晴らしい解決策ですが、ウィンドウ位置を1回だけ設定し、すべての反復でコマンドを繰り返さない別の方法がありますか?

私はウィンドウを500ミリ秒ごとに更新したいと思います。固定ウィンドウ位置の画像ストリームを表示するには良い方法はありますか?

while true: 
    (...) 
    img = cv2.imread('test.jpg', cv2.IMREAD_COLOR) 
    cv2.imshow('image',img) 
    cv2.moveWindow('image',200,200) 
    (...) 
+0

私が今まで同じことを行っています。 whileループの前にmoveWindow関数を使用しました。最初に元の画像がない場合は、ループで使用する同じサイズの黒の画像全体をデフォルトとして使用することができます。 (でも、私はC++/OpenCVを使っていましたが、Pythonが似ているかどうかわかりません) –

+0

ありがとう、夏の牙! Pythonでもうまくいきます。以下のコードを参照してください – Chris72H

答えて

1

夏の牙さんのコメントによると、私は私のためのループ作品の外にウィンドウを移動する方法方法を表示したい:

test_img = np.zeros(shape=(height,width,3)).astype('uint8') 
cv2.imshow('image',test_img) 
cv2.moveWindow('image',200,200) 
cv2.waitKey(1) 

while true: 
    (...) 
    img = cv2.imread('test.jpg', cv2.IMREAD_COLOR) 
    cv2.imshow('image',img) 
    (...) 
+1

はい良いアイデアです。 emtpyイメージを作成する代わりに、単に行2の 'cv2.imshow( 'image'、cap.read()[1])'を実行することもできます – crazjo

関連する問題