在GUI中嵌入窗口

时间:2014-02-20 11:27:53

标签: python opencv user-interface tkinter

我正在尝试构建一个可以完成两件事的应用程序。

  1. 从网络摄像头获取实时Feed并使用OpenCV显示它。 (尝试过IP摄像机,但放弃了,它还没有工作)
  2. 根据视频输入绘制图表。
  3. 网络摄像头Feed正常,我可以使用imshow()namedWindow()显示它 。 我使用 Tkinter。

    创建的图表

    上面的两个输出,我想将它们添加到一个帧中。是否可以这样做?

    我用什么方法将它们嵌入一个窗口?

    请注意我正在使用Python并在Windows上进行开发。

1 个答案:

答案 0 :(得分:1)

您可以使用numpy堆栈概念将两个或多个输出窗口组合到一个输出窗口中。

Referene Link: -

http://docs.scipy.org/doc/numpy/reference/generated/numpy.hstack.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html#numpy.vstack

示例代码: -

import cv2
import numpy as np

img1 = cv2.imread('Bird1.jpg')
img2 = cv2.imread('Bird2.jpg')

img_stack = np.hstack((img1,img2))

cv2.imshow('Image Stack',img_stack)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意: -

您可以将任意数量的输出窗口组合成单个窗口。去做这个, 输入图像的高度,宽度和通道必须相同。

通道表示,如果图像处于RGB模式,则表示所有图像都应处于RGB模式。

您无法将一个RGB模式图像和一个灰度模式图像组合到一个窗口中。

与图像一样,您也可以叠加视频。