Python 如何在 Gtk 中用 OpenCV 画图
How to draw a picture by OpenCV within Gtk in Python
我正在努力将 OpenCV 与我的 Python Gtk 应用程序集成。我想做的是加载这样的图片:
pic = cv2.imread("image.jpg") #pic is a numpy.ndarray
之后,我想使用 GtkWidget 显示此图像。但实际上我不知道如何。我的第一个想法是使用类似 GtkImage 的东西,但 GtkImage 只能直接处理图像文件。由于我的计划是操纵视频流,因此这是不可行的。
也许你们中有人知道如何进行。非常感谢。
我找到了解决办法。所以对于任何有兴趣的人,我都是这样做的:
self.frame = Gtk.Frame()
pic = cv2.imread("image.jpg")
pic = cv2.resize(pic, (400,600))
pic = np.array(pic).ravel()
print(pic.size)
pixbuf = GdkPixbuf.Pixbuf.new_from_data(pic,GdkPixbuf.Colorspace.RGB, False, 8, 600, 400, 3*600)
Image = Gtk.Image.new_from_pixbuf(pixbuf)
self.frame.add(Image)
我正在努力将 OpenCV 与我的 Python Gtk 应用程序集成。我想做的是加载这样的图片:
pic = cv2.imread("image.jpg") #pic is a numpy.ndarray
之后,我想使用 GtkWidget 显示此图像。但实际上我不知道如何。我的第一个想法是使用类似 GtkImage 的东西,但 GtkImage 只能直接处理图像文件。由于我的计划是操纵视频流,因此这是不可行的。
也许你们中有人知道如何进行。非常感谢。
我找到了解决办法。所以对于任何有兴趣的人,我都是这样做的:
self.frame = Gtk.Frame()
pic = cv2.imread("image.jpg")
pic = cv2.resize(pic, (400,600))
pic = np.array(pic).ravel()
print(pic.size)
pixbuf = GdkPixbuf.Pixbuf.new_from_data(pic,GdkPixbuf.Colorspace.RGB, False, 8, 600, 400, 3*600)
Image = Gtk.Image.new_from_pixbuf(pixbuf)
self.frame.add(Image)