- [OpenCV官方教程中文版-段力辉译]-在 IPython 中
- [OpenCV官方教程中文版-段力辉译]-OpenCV 中的轮廓
- [OpenCV官方教程中文版-段力辉译]-OpenCV 中的轮廓
- [OpenCV官方教程中文版-段力辉译]-OpenCV 利用ge
- [OpenCV官方教程中文版-段力辉译]-图像梯度
- [OpenCV官方教程中文版-段力辉译]-python+open
- [OpenCV官方教程中文版-段力辉译]-Canny边缘检测
- 【资源福利】OpenCV最新中文版官方教程来了
- [OpenCV官方教程中文版-段力辉译]-用line_profi
- [OpenCV官方教程中文版-段力辉译]-cv2.cvtColo
在 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)
网友评论