Python是人工智能领域重要语言,OpenCV可以作为模块被Python调用,本篇文章用图片处理的实例,一步一步教会新手如何使用Python+OpenCV协作完成特定业务需求。
概括来讲分为两部分,第一部分是如何安装并使用Python,第二部分是如何集成Opencv。
Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:
Python官网:https://www.python.org/
你可以在以下链接中下载 Python 的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。
Python文档下载地址:https://www.python.org/doc/
1. 使用brew 安装命令如下
$ brew install python
2. 安装成功后验证执行下面命令
$ python
3. 出现如下输出说明安装成功
WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within Terminal.
Python 2.7.16 (default, Jun 5 2020, 22:59:21)
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc- on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
4. 执行pyhon命令后已经进入了交互模式可以输入python脚本并执行,如
>>> print('hello world')
hello world
>>>
解释:print('hello world')是python脚本,hello world 是执行脚本后的输出。
pip是python安装插件的工具,安装该工具后可以用来安装OpenCV模块,安装命令
pip 命令没有需要安装
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
$ sudo python get-pip.py # 运行安装脚本
$ pip install opencv-contrib-python # 安装插件
读取一个图片4.jpg,利用OpenCV对图片灰度处理和色彩处理分别保存为grayscale_4.jpg和anglababy.jpg代码如下(示例):
创建文件 img.py
import cv2
color_img=cv2.imread('4.jpg')
print(color_img.shape)
# 读取单通道
gray_img=cv2.imread('4.jpg',cv2.IMREAD_GRAYSCALE)
print(gray_img.shape)
#把单通道图像保存后,再读取,仍然是3通道,相当于将单通道复制到3个通道保存
cv2.imwrite('grayscale_4.jpg',gray_img)
reload_grayscale=cv2.imread('grayscale_4.jpg')
print(reload_grayscale.shape)
# 指定jpg质量,范围从1~100,默认95,值越高画质越好,文件越大
cv2.imwrite('anglababy.jpg',color_img,(cv2.IMWRITE_JPEG_QUALITY,20))
在MAC console中执行命令运行img.py脚本
python3 img.py
报错: ModuleNotFoundError: No module named ‘cv2’
通过检查发现安装pip时忽略了一个警告,导致pip安装在缓存中,所以最终导致无法导入OpenCV的模块cv2,警告如下
WARNING: The directory '/Users/istone/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
使用下面命令再次安装pip后问题解决
sudo -H python3 get-pip.py
脚本执行成功输出,并且得到两个文件grayscale_4.jpg和anglababy.jpg
$ python3 saveImage.py
(820, 734, 3)
(820, 734)
(820, 734, 3)
学习入门一个新的领域,按照这样的三步可以减少学习过程中走弯路,
第一步,理清这个领域用到语言和组件的关系,可以模糊但一定要准确,最好的方式是查询大量的文章对比求证。如果这一步出问题,后面要花费大量精力。
第二步,理清简单实践的原理,如pyhon是调用opencv的语言,因此OpenCV应该作为支持python的方式嵌入到pyhon模块中,成为pyhon大量模块中的一个。
第三步,找到逻辑上最靠谱的实战例子进行验证。
色彩