本文主要讲述在python3.6环境下如何搭建OpenCV开发环境。

文章主要包含以下几个部分:

OpenCV介绍

安装OpenCV

OpenCV测试

Python机器学习库介绍

1. OpenCV介绍

Open Source Computer Vision Library.OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、MacOS操作系统上。它轻量级而且高效——由一系列 C 函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

简而言之,通过openCV可实现计算机图像、视频的编辑。广泛应用于图像识别、运动跟踪、机器视觉等领域。

2. 安装OpenCV

这里我们是在Win7 Python3.6.2(64bit)的环境下安装OpenCV:

C:\Users\Administrator>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

OpenCV依赖于numpy、matplotlib、opencv-python三个包。这里我们首先介绍一下python3.6下安装numpy + scipy + matplotlib,注意这里我们安装的numpy为numpy+mkl,因为scipy需要依赖于numpy + mkl。

2.1 安装 numpy + scipy + matplotlib + scikit-learn

参看:

(1) 安装

直接通过如下命令安装时容易出现问题:

pip install numpy
pip install scipy
pip install matplotlib

此时,我们需要到 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应的安装包。这里我们根据自己的环境,下载安装包如下:

numpy‑1.13.1+mkl‑cp36‑cp36m‑win_amd64.whl
scipy-0.19.1-cp36-cp36m-win_amd64.whl
scikit_learn‑0.19.0‑cp36‑cp36m‑win_amd64.whl

下载好后安装numpy‑1.13.1+mkl‑cp36‑cp36m‑win_amd64.whl,提示文件名错误:

C:\Users\Administrator>pip install E:\numpy‑1.13.1+mkl‑cp36‑cp36m‑win_amd64.whl
numpy‑1.13.1+mkl‑cp36‑cp36m‑win_amd64.whl is not a valid wheel filename.

此时,我们需要将将文件名更改一下,变成numpy-1.12.1-cp36-none-win_amd64.whl,然后执行如下命令进行安装即可:

pip install E:\numpy-1.12.1-cp36-none-win_amd64.whl
pip install E:\scipy-0.19.1-cp36-cp36m-win_amd64.whl
pip install matplotlib # matplotlib直接安装即可
pip install

(2) 程序验证

编写如下程序进行验证:

# -*- coding: utf-8 -*-
import numpy
import matplotlib.pyplot
def f(t):
return numpy.exp(-t)*numpy.cos(2*numpy.pi*t)
t1 = numpy.arange(0.0, 5.0, 0.1)
t2 = numpy.arange(0.0, 5.0, 0.2)
matplotlib.pyplot.figure(1)
matplotlib.pyplot.subplot(211)
matplotlib.pyplot.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
matplotlib.pyplot.subplot(212)
matplotlib.pyplot.plot(t2, numpy.cos(2*numpy.pi*t2), "r--")
matplotlib.pyplot.show()

程序运行结果如下:

opencv python otsu使用mask python opencv sobel_OpenCV

2.2 安装OpenCV

上面我们已经成功的安装了numpy + matplotlib,此时我们一般可以直接通过如下命令来安装OpenCV:

pip install opencv-python

3. OpenCV测试

编写如下脚本:

# -*- coding: utf-8 -*-
import numpy
import cv2
print(cv2.__version__)
# read image, support bmp,jpg,png,tiff format
img = cv2.imread("D:\\timg2.jpg")
emptyImage = numpy.zeros(img.shape,numpy.uint8)
emptyImage2 = img.copy()
emptyImage3 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# create window and display the created window
cv2.namedWindow("Image")
#cv2.imshow("Image",img)
#cv2.waitKey(0)
#cv2.imshow("Image",emptyImage2)
#cv2.waitKey(0)
cv2.imshow("Image",emptyImage3)
cv2.waitKey(0)
# destory window
cv2.destroyAllWindows()

运行结果如下:

opencv python otsu使用mask python opencv sobel_OpenCV_02

4. Python机器学习库介绍

Python下有很多关于机器学习的库,最常用的组合有以下四个:

numpy: 主要用来做一些科学运算,主要是矩阵运算。NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。

scipy: 主要是一些科学计算工具集,信号处理工具集(如线性代数使用LAPACK库,快速傅里叶变换FFTPACK库)及数值计算的一些工具(常微分方程求解使用ODEPACK库,非线性方程组求解以及最小值求解等)。

scikit-learn: 里面有很多机器学习相关的算法(如聚类算法,SVM等)

matplotlib: 是一个画图工具,和Matlab中的画图工程类似。

5. Linux上安装opencv

当前安装环境为Centos7.1(64bit) + python3.6.2。在Linux下安装OpenCV-Python相对简单,直接采用如下命令:

pip install numpy
pip install scipy
pip install matplotlib
pip install scikit-learn
pip install opencv-python

安装好后测试:

[root@localhost python]# python3
Python 3.6.2 (default, Aug 28 2017, 23:56:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
3.3.0
>>>

要源代码编译安装请参看:

6. 参考