文章目录
前言
最近在写一个实时图像处理的程序,程序需要对快速相机捕获的目标图像进行实时地计算处理并输出处理结果。由于相机帧频比较快(几百fps),计算机对图像的处理速度就成了整个程序速度的瓶颈,在使用python语言编写完成后,程序的运行速度只有几十赫兹。为了提高程序的运行速度,引入了numba工具,使用jit和vectorize两种函数修饰器对程序中比较耗时的运算进行修饰后,程序的运行速度达到几百赫兹,接近相机的帧频。
由于程序中图像的分辨率不是特别高,计算的并行读较低,对计算速度的要求也不是特别高,numba的jit和vectorize这两种简单方便的修饰器正好能够满足我的需求。下面介绍一下这两种修饰器的使用方法。
准备
开始之前,需要先安装相关的工具包,主要包括numpy、llvmlite、numba。
如果你的电脑连接了互联网的话,这些工具包的安装都非常简单。如果你安装了Anaconda的conda工具的话,只需要在cmd命令窗口输入conda install numba
即可,如果没有conda的话也可以通过pip工具完成安装:pip install numba
。
如果你的电脑没有连接互联网的话,安装起来就会比较麻烦了,你需要先从这里下载跟你的操作系统和python版本匹配的安装包(llvmlite、numpy、numba),然后再使用pip工具依次安装:pip install path\filename.whl