如何在 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 中......如何?