如何将openCV中的imshow()和moveWindow()与python结合起来?

问题描述:

我更新的无限循环cv2.imshow()命令,我要处理的窗口位置,因为窗口总是在我的显示器的顶部,一小部分是invisable。如何将openCV中的imshow()和moveWindow()与python结合起来?

的cv2.moveWindow()命令是我的任务一个很好的解决方案,但有一种其他的方式来设置窗口位置只有一次,而不是在每次迭代命令重复?

我想更新窗口每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

据夏方的评论,我想说明如何外的循环工作对我来说移动窗口的方式:

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

是的好主意。您可以在第2行简单地执行'cv2.imshow('image',cap.read()[1])',而不是创建静态图片 – crazjo