python+opencv+numpy+jupyter+matplotlib环境配置(《OpenCV3 计算机视觉--Python语言实现 第二版》)

python+opencv+jupyter+matplotlib环境配置

  • 引言
  • 1. 安装python
    • 1.1 下载
    • 1.2 安装
  • 2. 安装各种包
  • 3. 运行jupyter
  • 4. 其他可选的运行环境
  • 5. OpenCV相关信息
    • 5.1 OpenCV-Python Tutorials 官方文档
    • 5.2 如何理解opencv, python-opencv 和 libopencv?
    • 5.3 为什么OpenCV3在Python中导入名称是cv2 ?

引言

最近在讲授《OpenCV3 计算机视觉–Python语言实现 第二版》这本书。
《OpenCV3 计算机视觉–Python语言实现 第二版》这本书的源代码:https://github.com/techfort/pycv
图像处理学习过程中需要动手实验,可选的软件环境有很多,推荐一种简单的方案,针对windows操作系统,安装配置简单,运行环境类似与Matlab,非常适合新手。
极简环境配置:python+opencv+numpy+jupyter+matplotlib。
numpy:支持丰富的数据格式
jupyter:可以在一个界面完成编写程序、运行程序、显示运行结果。
matplotlib:支持各种画图格式

1. 安装python

1.1 下载

python 官网: https://www.python.org/
找到 downloads 链接,点进去之后,选择windows操作系统,选择Python 3的最新版本(Python 3和Python 2好多语法不同,建议安装Python3,因为很多最新的学习示例是Python3版本)。
下载的文件是 python-3.7.4-amd64.exe。

1.2 安装

就和普通windows软件安装很相似,双击安装文件 python-3.7.4-amd64.exe,弹出安装选项页面。
选择 自定义安装,选择所有用户,确保安装目录没有中文没有空格,无比选择pip,如下图。

python+opencv+numpy+jupyter+matplotlib环境配置(《OpenCV3 计算机视觉--Python语言实现 第二版》)_第1张图片

2. 安装各种包

python+opencv+numpy+jupyter+matplotlib环境配置(《OpenCV3 计算机视觉--Python语言实现 第二版》)_第2张图片
点击windows开始按键,在出现的搜索框中输入cmd,回车,弹出一个黑色界面,这个界面就是dos界面。

在doc界面输入

 pip install opencv-python jupyter matplotlib numpy scipy

回车之后显示下载安装进度,需要确保网络正常。
如果这时候提示 pip 是不可执行的命令,说明第一步安装Python时漏选了pip,再次双击Python的安装文件,重新安装,确保安装的时候选中了pip。

在这里插入图片描述

上面是用一条命令安装了多个包,包括“opencv-python" “jupyter” “matplotlib” “scipy” “numpy”,两个包名称中间用空格隔开。
也每次之安装一个包,等待下载安装完成之后,再安装下一个包。
例如,安装 opencv-python

pip install opencv-python

3. 运行jupyter

在doc命令窗口输入D:,D盘。(假设我们的工作目录是D盘,不建议将默认的C盘作为工作目录)
在doc命令窗口输入 jupyter notebook,然后输入回车,等着弹出网页。
这个网页中看到的就是工作目录D盘中的文件,接下来新建的文件也会保存在D盘中。
在自动弹出的网页上 点击new-> python3,新建jupyter文件。
python+opencv+numpy+jupyter+matplotlib环境配置(《OpenCV3 计算机视觉--Python语言实现 第二版》)_第3张图片
下载 《OpenCV3 计算机视觉–Python语言实现 第二版》这本书的源代码:https://github.com/techfort/pycv
将书中的代码拷贝到刚才新建的文件中,
并且在代码开始处新增一行inline代码:%matplotlib inline,否则无法正常画图显示。

%matplotlib inline

python+opencv+numpy+jupyter+matplotlib环境配置(《OpenCV3 计算机视觉--Python语言实现 第二版》)_第4张图片
点击运行按钮,运行程序。

4. 其他可选的运行环境

除了上述环境,还可以选择:
环境1:anoconda
下载的时候选择windows、Python3版本。
一个安装文件全搞定,包括很多常用包,里面就有OpenCV、Jupyter、Matplotlib等。
缺点就是安装文件很大,500M以上。

但是我在安装过程中遇到了问题,提示”failed to create anacoda menu“。
尝试了各种方法,还是没有能解决。
可能是因为我用的公共计算机,系统被保护了,有些操作不能成功执行。

环境2:python+Pycharm+在Pycharm的terminal中安装各种包。
下面这个博客对比了Pycharm和Jupyter的优缺点,对于大型工程首选Pycharm,对于学习简单的代码首选Jupyter。
配置便捷的开发环境(PyCharm & Jupyter)
Jupyter 可以写一块代码,执行一块代码,一边写一边运行并打印中间结果,和Matlab的使用体验很相似。
Jupyter 在处理数据的时候,所有中间结果不会被擦除,都显示在对应的cell下面。方便调试,减轻记忆的工作量。

5. OpenCV相关信息

5.1 OpenCV-Python Tutorials 官方文档

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
这是官方文档,在这里可以查找函数的说明,理解各个参数的含义。

5.2 如何理解opencv, python-opencv 和 libopencv?

https://www.cnblogs.com/Younghai/p/10727227.html

  1. OpenCV
    OpenCV is a computer vision library written using highly optimized C/C++ code. It makes use of multiprocessing in the background. It has a collection of a large number of algorithms tested and verifiend by the developers. The best thing about this is it’s FREE under the BSD license. (https://opencv.org/about.html)
  2. libopencv
    libopencv is only a metapackage. These packages do not contain actual software, they simply depend on other packages to be installed. So libopencv is a metapackage which simply references one or more related packages which are loosely grouped together. It is dedicated for installing OpenCV in Ubuntu and Debian OS. (https://packages.debian.org/sid/libopencv-dev)
  3. Python-OpenCV
    Python-OpenCV is the OpenCV library available as a wrapper with bindings for python. The link also shows how to install OpenCV in Ubuntu OS.( https://pypi.org/project/opencv-python/ https://opencv-python-tutroals.readthedocs.io/en/latest/ )
    详情请参考:https://stackoverflow.com/questions/45450706/whats-the-difference-with-opencv-python-opencv-and-libopencv#

5.3 为什么OpenCV3在Python中导入名称是cv2 ?

https://blog.csdn.net/zjc910997316/article/details/85341056
实际上,”cv2”中的”2”并不表示OpenCV的版本号。
OpenCV是基于C/C++的,
”cv”和”cv2”表示的是底层C API还是C++API的区别,
”cv2”表示使用的是C++API。这主要是一个历史遗留问题,是为了保持向后兼容性,一直沿用了cv2这个namespace。

你可能感兴趣的:(OpenCV)