OpenCV是知名的开源计算机视觉算法库,提供了C++\Python\Java版共享库。
在Python中使用OpenCV格外简单,一句命令就能安装,一行import就能引入,可谓是神器。然而,在实际使用中可能遇到一些疑问,下面进行总结。
大家一般都使用anaconda或miniconda管理多个python环境,因而习惯使用conda install
指令安装一切包。
pip install
和conda install
所安装的包都位于envs/环境名/site-packages目录下,使用conda list
指令也会列出pip所安装的包。
pip install
和conda install
安装python包的本质是,在各自的包仓库中检索包名称,如果检索到,就把它下载下来然后安装。pip的包源是Python Package Index(PyPI),与conda的包源不通用,也就是说这两个仓库是不互通的。自然就会有一些包可以使用pip安装而不能用conda安装。
opencv库包在PyPI中名字叫’opencv-python’,在conda中叫opencv。所以使用这两种方式安装opencv的命令分别是:
pip install opencv-python
conda install opencv
这两者安装的opencv若版本相同,则在功能上完全一致,使用起来没有多大区别。但是,PyPI中的opencv和conda中的opencv的维护者不同,依赖的底层库(如JPEG格式读写)也有细微差异,造成在某些极特殊情况下处理结果不同。
一般来说,推荐使用pip安装opencv。
opencv-python
和opencv-contrib-python
都具备基本的图像处理算法。后者包含了更多的特殊算法(商用需要付费的算法、线特征提取等),而且大小比前者没有大很多,推荐安装后者。
opencv-python-headless
包含了opencv的一个子集,"headless"的意思是这个库不包含图形用户界面(GUI)的功能,因此它通常用于在没有显示器或图形界面的环境中运行。