Python:OpenCV的默认优化
许多OpenCV函数都是使用SSE2、AVX等优化的。它还包含未优化的代码。
因此,如果我们的系统支持这些特性,我们应该利用它们(几乎所有现代处理器都支持它们)。
在编译时默认启用它。
因此OpenCV在启用时运行优化的代码,否则运行未优化的代码。
可以使用css . useoptimized()检查它是否启用/禁用,使用css . setuseoptimized()检查它是否启用/禁用。
让我们看一个简单的例子。
# check if optimization is enabled
cv.useOptimized()
# 结果
True
%timeit res = cv.medianBlur(img,49)
# 结果
10 loops, best of 3: 34.9 ms per loop
# Disable it
cv.setUseOptimized(False)
cv.useOptimized()
# 结果
False
%timeit res = cv.medianBlur(img,49)
# 结果
10 loops, best of 3: 64.1 ms per loop
正如你所看到的,优化的中值滤波比未优化的版本快2倍。
如果你检查它的源码,你可以看到中值滤波使用SIMD优化。
因此,您可以使用它在代码的顶部启用优化(记住,它是默认启用的)。