OpenCV编写高效的图像扫描循环

OpenCV编写高效的图像扫描循环,在编写图像处理函数时,你需要充分考虑运行效率。在设计函数时,你要经常检查代码的运行效率,找出处理过程中可能使程序变慢的瓶颈。

但是有一点非常重要,除非确实必要,不要以牺牲代码的清晰度来优化性能。简洁的代码总是更容易调试和维护。只有对程序效率至关重要的代码段,才需要进行重度优化。

如何实现

OpenCV有一个非常实用的函数可以用来测算函数或代码段的运行时间,它就是cv::get TickCount(),该函数会返回从最近一次计算机开机到当前的时钟周期数。在代码开始和结束时记录这个时钟周期数,就可以计算代码的运行时间。若想得到以秒为单位的代码运行时间,可使用另一个方法cv::getTickFrequency(),它返回每秒的时钟周期数,这里假定CPU的频率是固定的(对于较新的CPU,频率并不一定是固定的)。为了获得某个函数(或代码段)的运行时间,通常需使用这样的程序模板:

        const int64 start = cv::getTickCount();
        colorReduce(image); // 调用函数
        // 经过的时间(单位:秒)
        double duration = (cv::getTickCount()-start)/
                                    cv::getTickFrequency();

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!