OSX中的OpenCV轨迹栏性能

时间:2014-01-25 10:48:10

标签: performance macos opencv

我刚刚注意到,当一个轨道栏出现在一个窗口中时,openCV的性能会急剧下降,而这个轨道栏会改变来自相机或电影帧的图像。可以做些什么来解决这个问题?

4 个答案:

答案 0 :(得分:3)

解决方案是将轨迹栏移动到单独的窗口。对我来说,OSX的性能提高了4.7倍(从3 FPS增加到14)。我不知道它是否总能像这样工作,或者就像我的计算机上那样,但我之前没有看到任何线索所以我决定分享。

string title = "My window";
int p = 2;

// Create a different window for controls
namedWindow(title + " - controls");
// I show an image once just to resize the window
imshow(title + " - controls", Mat::zeros(1, 500, CV_8UC1));
createTrackbar("Parameter", title + " - controls", &p, 3);

// Create a different window for actual image
namedWindow(title);
while (!done) {
    // Do some calculations
    flip(image, image, p);
    imshow(title, image);
}

答案 1 :(得分:2)

我在OSX-10.9中也遇到了同样的问题。 我已通过以下方式解决了这个问题:

port variants opencv
sudo port install opencv +qt4 +tbb +eigen +opencl

重要选项仅为“+ qt4”,其他选项为额外选项。

OpenCV支持GUI后端的Qt。我怀疑问题的原因在于默认GUI后端的实现。

通过使用Qt支持重新构建OpenCV库并重新安装(更新),我几乎可以消除这个问题。

答案 2 :(得分:0)

对我来说,这似乎与OpenCV的Anaconda发行版有关。

使用pip安装OpenCV解决了我的性能问题。

答案 3 :(得分:0)

尝试调整

cv2.waitKey(value)

我使用了 cv2.waitKey(100) 并且工作顺利