如何在 enaml 空间中获取 opencv 图像 - 有可能吗?

Posted

技术标签:

【中文标题】如何在 enaml 空间中获取 opencv 图像 - 有可能吗?【英文标题】:How to get opencv image in an enaml space - Is it possible? 【发布时间】:2013-11-06 23:56:44 【问题描述】:

是否可以将 enaml 作为 OpenCV 的目标?

我正在考虑如何设置 GUI 以及使用什么。 没什么太复杂的,我需要能够设置一些位图背景,在其上绘制矩形和圆形,还可以选择/移动这些图形对象。

另外,我希望在拉伸窗口等时不必处理所有这些元素。它们应该自动执行此操作,因为它们将在某个“绝对”空间中定义。我想我可以通过覆盖 ImageProvider 对象中的 request_image 轻松使它适用于位图(甚至从内存中)(即使我在提供程序/enaml 视图中看到一些奇怪的缓存)。

我现在在使用 OpenCV (OSX 64) 时遇到的问题是,即使我调整大小以使用 qt 后端和 CV_WINDOW_NORMAL,内容也不会拉伸。 我喜欢 OpenCV,因为我很容易获得基本的 UI 功能。

另一方面,我开始喜欢搪瓷,所以我想有没有人设法让这些一起工作。 我在想如果与 MPL 的链接有效,那么与 OpenCV 的耦合应该是可能的:)

谢谢!

【问题讨论】:

【参考方案1】:

如果您可以将图像转换为 argb32 或 png 格式,则可以使用 Enaml ImageView 来显示它。

看一下 ImageView 的例子: https://github.com/nucleic/enaml/blob/master/examples/widgets/image_view.enaml

【讨论】:

【参考方案2】:

应该这样做:

from enaml.image import Image
from cv2 import imread, imencode

open_cv_image = imread('./cat.png')
png_image = imencode('.png', open_cv_image)[1].tostring()
enaml_image = Image(data=png_image)

【讨论】:

以上是关于如何在 enaml 空间中获取 opencv 图像 - 有可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

将 pyqtgraph 嵌入到 enaml 中......如何?

如何在OpenCV中使用Adobe RGB色彩空间读取jpeg图像?

在opencv中,图像是以啥数据类型存储的

如何获取矩阵二范数 opencv

如何在 OpenCV 2 中从图像中获取通道数?

如何在 OpenCV 中获取图像的宽度和高度? [复制]