【发布时间】:2016-06-17 03:35:33
【问题描述】:
我有一个相对简单的应用程序,它目前利用 OpenCV 使用 cv::VideoCapture 从相机中获取图像,并使用在 OS X El Capitan 上运行的 imshow() 在窗口中查看生成的图像。
在这期间我正在做一些基本的图像修改,但这对我的问题并不重要。
由于 OpenCV 实现的 GUI 非常基本,我决定使用 wxWidgets 重做它。我得到它的运行基本上类似于 wxWidgets 教程部分中的实现linked。 (将其更新为 C++11 等,但想法几乎相同。代码位于 github。)
现在我的问题是:在最好的情况下,我得到的帧速率只有 OpenCV 唯一解决方案的一半。 OpenCV 在下面使用 qt。但是当我查看堆栈跟踪时,它归结为使用 CoreGraphics 的类似函数调用。
所以我的问题归结为:在 OS X 上使用 wxWidgets 将图像绘制到帧速率 > 20fps 的窗口的最佳方法是什么?目前我使用的是 DrawBitmap() 函数。
额外问题:当我的 Macbook 内部 Retina 屏幕上有窗口时,帧速率会变得更糟。我应该对图片进行任何预处理/缩放以减轻 GUI 进程的负载吗?
【问题讨论】:
标签: c++ macos opencv wxwidgets