【问题标题】:How to combine imshow() and moveWindow() in openCV with python?如何将openCV中的imshow()和moveWindow()与python结合起来?
【发布时间】:2018-03-29 23:39:06
【问题描述】:

我正在无限循环中更新 cv2.imshow() 命令,并且我想操纵窗口位置,因为窗口始终位于我的显示器顶部,并且一小部分是不可见的。

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

我想每 500 毫秒更新一次窗口。有没有更好的方法来显示具有固定窗口位置的图像流?

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

【问题讨论】:

  • 我曾经做过同样的事情。我在 while 循环之前使用了一次 moveWindow 函数。如果一开始您没有要显示的原始图像,则可以默认使用整个黑色图像,其尺寸与您将在循环中使用的尺寸相同。 (但我用的是C++/OpenCV。不知道Python是否也能类似)
  • 谢谢方夏!它在 Python 中也可以正常工作。请参阅下面的代码

标签: python opencv imshow


【解决方案1】:

根据 Summer Fang 的评论,我想展示将窗口移出循环的方式对我来说是如何工作的:

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)  
   (...)

【讨论】:

  • 是的好主意。除了创建 emtpy 图像,您还可以简单地在第 2 行执行 cv2.imshow('image',cap.read()[1])
猜你喜欢
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 2021-08-06
  • 2015-02-23
  • 2012-07-16
相关资源
最近更新 更多