python opencv 获取程序执行时间

原创 2016年08月28日 16:31:26

14-python opencv 获取程序执行时间


概述

本节实现的是使用OpenCV里自带的函数,计算程序的执行时间。

  • 获取系统时钟数
  • 获取系统时钟频率

实现过程

初始时间

不再赘述,代码如下。

# time start
t1 = cv2.getTickCount()

执行代码

我这里执行的是之前绘制直方图的代码,请参考我的主页我的博客GitHub

结束时间

获取程序结束时间。

# time end
t2 = cv2.getTickCount()

计算执行秒数

利用getTickFrequency()获取时钟频率。

t = (t2-t1)/cv2.getTickFrequency()
print t

源代码

整个程序的源代码如下:

# created by Huang Lu
# 2016/8/26 17:35
# Department of EE, Tsinghua Univ.

import cv2
import numpy as np

# get the hist graph of a gray image
def HistGraphGray(image, color):    
    hist= cv2.calcHist([image], [0], None, [256], [0.0,255.0])       
    histGraph = np.zeros([256,256,3], np.uint8)
    m = max(hist)
    hist = hist * 220 / m
    for h in range(256): 
        n = int(hist[h])
        cv2.line(histGraph,(h,255), (h,255-n), color)        
    return histGraph; 

# get the hist graph of a color image
def HistGraphColor(image):
    histGraph = np.zeros([256,256,3], np.uint8)
    colorBlue = [255, 0, 0]
    colorGreen = [0, 255, 0]
    colorRed = [0, 0, 255]
    b, g, r = cv2.split(image)
    bhist = cv2.calcHist([b], [0], None, [256], [0.0,255.0])
    ghist = cv2.calcHist([g], [0], None, [256], [0.0,255.0]) 
    rhist = cv2.calcHist([r], [0], None, [256], [0.0,255.0])
    bm = max(bhist)
    gm = max(ghist)
    rm = max(rhist)
    bhist = bhist * 220 / bm
    rhist = rhist * 220 / rm
    ghist = ghist * 220 / gm
    for h in range(256):
        bn = int(bhist[h])
        gn = int(ghist[h])
        rn = int(rhist[h])
        if h != 0:
            cv2.line(histGraph,(h-1,255-bStart), (h,255-bn), colorBlue)
            cv2.line(histGraph,(h-1,255-gStart), (h,255-gn), colorGreen)
            cv2.line(histGraph,(h-1,255-rStart), (h,255-rn), colorRed)
        bStart = bn
        gStart = gn
        rStart = rn
    return histGraph

# main fuction
if __name__ == '__main__':
    # time start
    t1 = cv2.getTickCount()

    # test for a gray image
    img1 = cv2.imread("../test1.jpg", 0)
    color = [255, 255, 255]
    histGraph1 = HistGraphGray(img1, color)
    cv2.imshow("Hist Gray", histGraph1)

    # test for a color image
    img2 = cv2.imread("../test2.jpg")
    # first tset for three channels
    colorRed = [0, 0, 255]
    colorGreen = [0, 255, 0]
    colorBlue = [255, 0, 0]
    b, g, r = cv2.split(img2)
    # blue channel
    bhistGraph = HistGraphGray(b, colorBlue)
    cv2.imshow("Hist Blue", bhistGraph)
    # green channel
    ghistGraph = HistGraphGray(g, colorGreen)
    cv2.imshow("Hist Green", ghistGraph)
    # red channel
    rhistGraph = HistGraphGray(r, colorRed)
    cv2.imshow("Hist Red", rhistGraph)
    # get three channels together
    histGraph2 = HistGraphColor(img2)
    cv2.imshow("Hist Color", histGraph2)

    # time end
    t2 = cv2.getTickCount()
    t = (t2-t1)/cv2.getTickFrequency()
    print t

    cv2.waitKey(0)    
    cv2.destroyAllWindows()

也可以参考我的GitHub上的,点击这里

运行结果

在命令行进入该源程序所在目录后,运行python main.py后即可显示结果。显示结果如下:

结果

根据上图,程序用时0.103647207s。

参考

版权声明:本文为博主原创文章,未经博主允许不得转载。

Opencv3.0-python的那些事儿:(九)、Opencv关于如何读取大量视频帧进行处理的方法

一个真实的项目需求,需要读取视频的帧然后对这些帧做数据处理,因此用的是opencv3.0(python)来做的,熟悉opencv3.0的朋友知道,它提供了VideoCapture方法可以读取视频,并生...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2016年06月09日 01:39
  • 4182

opencv 计算程序运行时间

先讲讲inline 函数  inline 函数又称 "内联函数", 他主要运用在函数体重执行的语句较少但又会被频繁调用的函数中, 例如调用函数输出50000条"hello, world!":...
  • ture_dream
  • ture_dream
  • 2017年01月10日 15:53
  • 1797

python得到电脑的开机时间

#先下载psutil库:pip install psutilimport psutil import os,datetime def main(): print "电脑的开机时...
  • CosmopolitanMe
  • CosmopolitanMe
  • 2017年09月07日 19:58
  • 511

python opencv 获取程序执行时间

本节实现的是使用OpenCV里自带的函数,计算程序的执行时间。 - 获取系统时钟数 - 获取系统时钟频率...
  • huanglu_thu13
  • huanglu_thu13
  • 2016年08月28日 16:31
  • 715

Python-OpenCV 杂项(三): 程序性能的检测和优化

在图像处理的中每秒钟都要进行大量的运算,所以对程序的要求不仅要能给出正确的结果,同时还需要快。 0x00. 获取程序执行时间 cv2.getTickCount 函数返回从参考点到这个函数被执行的时...
  • qq_26898461
  • qq_26898461
  • 2016年01月04日 10:43
  • 711

Python如何获得本程序的执行时间

在写python程序的时候,你是不是想知道程序一共执行了多长时间? 获取程序运行前后的时间戳,相减得到运行的时间。 import datetime starttime...
  • xm1331305
  • xm1331305
  • 2012年09月07日 20:32
  • 777

python记录程序运行时间的几种方法

1.获取当前时间的两种方法: 复制代码 代码如下: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print ...
  • a8039974
  • a8039974
  • 2018年01月10日 16:35
  • 113

OpenCV getTickCount统计代码运行时间

在OpenCV编程中,可能会遇到比较不同算法之间的运算复杂度及时耗,下面给出一个统计代码运行时间的demo,里面用到getTickCount函数,使用时需要添加头文件#include "opencv2...
  • pj_sysu
  • pj_sysu
  • 2015年04月26日 09:36
  • 1620

Python-OpenCV(5)

这次博客咱们比较下,python的函数、numpy的函数和OpenCV的函数的效率问题,让大家对销量高通情况下如何使用有比较直观的认识程序(语句)运行时间的测量 (1) python的time模块...
  • Gavin__Zhou
  • Gavin__Zhou
  • 2016年04月06日 09:43
  • 1239

【opencv】获取程序运行时间

double t = (double)getTickCount(); // do something ...返回该处代码执行所耗的时间,单位为秒 t = ((double)getTickCount()...
  • u013617144
  • u013617144
  • 2016年01月26日 12:01
  • 1052
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python opencv 获取程序执行时间
举报原因:
原因补充:

(最多只允许输入30个字)