【发布时间】:2013-01-12 01:51:01
【问题描述】:
我正在使用 JavaCV 对来自网络摄像头的动态图像进行处理。效果很好!我可以在图片中定义一个感兴趣的区域并在显示之前裁剪每个图像,它仍然可以每秒完成整整 30 帧而没有问题。不错!
但是,我使用 CanvasFrame 对象来显示实时图像。它工作得很好(而且很容易),但对于包含在应用程序中是完全没用的。我想将实时图像放在面板(或画布或其他任何东西)上,作为我的应用程序窗口的一个元素。
问题:CanvasFrame 存在于自己的框架中,并在我的窗口获得焦点时消失在我的窗口后面,并且在我移动窗口时也不会移动。
如何将实时图像添加到可以与常规 UI 元素集成的元素上?
再次,我需要在 JavaCV 中替换 CanvasFrame。 TIA。
【问题讨论】:
-
进一步测试。由于 CanvasFrame 对象提供了一个 getCanvas() 方法,我尝试使用它,然后将接收到的 Canvas 放入我的 UI。但是,这不起作用。 Frame 仍然作为一个单独的窗口弹出,其中包含其画布(并且正在工作),并且 UI 上的画布保持空白。所以这不能解决我的问题。有什么想法吗?
-
进一步测试。由于 CanvasFrame 对象提供了 add() 方法,因此我尝试将一些 UI 元素移入其中(而不是相反)。这有效,并且即使 run() 方法继续,事件仍然被处理。但是,我不能在 CanvasFrame 上设置未装饰(我想做)。
-
我现在确信我将解决这个问题的方法是从 CanvasFrame 的源代码开始,修改它以便它可以不装饰以及您需要修改的任何其他内容(我已经成功完成了) ,然后制作一个修改后的 CanvasFrame,并将其用作整个 UI 的容器(类似于制作容器面板的方式)。我会报告我的结果。
-
了解 Drawing an Image with Java 2D 并为您从相机获得的每张图像执行此操作!