我使用matlab代码(localSelfSimilarity)编写了一个opencv版本。它工作得很好,但速度是win7 64位(amd64 3Ghz 4核,8GB内存)比我的mac mini(2Ghz core2duo 64位,8GB内存)慢得多。相同代码的速度,相同的优化,相同的输入图像在Mac上,与时间执行...是实时1分钟,用户57s。另一方面,win7(msys)Real是2min44s,cpu 0.01s,sys..0.015 Cpu高达65%。 win7上的Gprof显示37%的时间用于_mcount_private。事实上,matlab代码的运行速度与opencv代码一样快。 Mac上的Opencv是旧2.2和win7新2.3.1。 Opencv是用mingw64构建的, (这可能是问题吗?)在win7上。昨天我下载了Windows SDK 7.1以使用64位cl.exe。使用nmake编译好代码,除了gpu-part(nvcc抛出有关vs配置的错误,尝试制作vcvars64.bat的技巧,但这没有帮助)。我将尝试用vc构建代码,看看是否有任何区别。 在win7上使用opencv的另一个代码运行得很好,只有这种自相似性真的很慢。 输入图像小200x157像素,使用400x500像素图像需要2.5小时。
答案 0 :(得分:0)
使用英特尔处理器观察更好的性能是有道理的。 OpenCV uses Intel Integrated Performance Primitives以提高效果。
您可以在没有它的情况下编译OpenCV并重新运行测试。