美文网首页
[OpenCV官方教程中文版-段力辉译]-在 IPython 中

[OpenCV官方教程中文版-段力辉译]-在 IPython 中

作者: 六千宛 | 来源:发表于2021-06-17 11:05 被阅读0次

在 IPython 中检测程序效率
有时你需要比较两个相似操作的效率,这时你可以使用 IPython 为你提供魔法命令%time。他会让代码运行好几次从而得到一个准确的(运行)时间,它也可以被用来测试单行代码的。

例如,你知道下面这同一个数学运算用哪种行式的代码会执行的更快吗?

    x = 5; y = x ∗ ∗2
    x = 5; y = x ∗ x
    x = np.uint([5]); y = x ∗ x
    y = np.squre(x)

我们可以在 IPython 的 Shell 中使用魔法命令找到答案。

import cv2
import numpy as np

x = 5
%timeit y=x**2

%timeit y=x*x

z = np.uint8([5])
%timeit y=z*z

%timeit y=np.square(z)

我们来再看几个例子。我们来比较一下 cv2.countNonZero() 和 np.count_nonzero()。

一般情况下 OpenCV 的函数要比 Numpy 函数快。所以对于相同的操作最好使用 OpenCV 的函数。当然也有例外,尤其是当使用 Numpy 对视图(而非复制)进行操作时。

import cv2
import numpy as np

# countNonZero():返回灰度值不为0的像素数,可用来判断图像是否全黑。
# opencv 二值化图像 像素统计 countNonZero  对二值化图像执行countNonZero。可得到非零像素点数.
%timeit z = cv2.countNonZero(img)

%timeit z = np.count_nonzero(img)

相关文章

网友评论

      本文标题:[OpenCV官方教程中文版-段力辉译]-在 IPython 中

      本文链接:https://www.haomeiwen.com/subject/betcyltx.html