我刚刚注意到,当一个轨道栏出现在一个窗口中时,openCV的性能会急剧下降,而这个轨道栏会改变来自相机或电影帧的图像。可以做些什么来解决这个问题?
答案 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) 并且工作顺利