published on in Python

影像处理・OpenCV简介

返回教程主页

上篇 影像处理・操作环境准备

下面,我们初步认识一下OpenCV这款计算机视觉处理程序开发库。在这之前需要确保成功安装它的Python版本,可以用上篇提到的pip install opencv-python命令进行安装,考虑到部分用户的网络问题,可以使用pip install opencv-python -i https://pypi.douban.com/simple切换成豆瓣源进行加速。

图像的载入,显示以及写入

最首先的自然是图像的载入,我们引入OpenCVimport cv2 as cv,然后使用imread载入图像:

import cv2 as cv

img = cv.imread('./python.jpg')
print(type(img))

cv.imread函数传入一个图像文件路径的字符串作为参数,如果成功cv.imread将返回返回图片像素信息的numpy数组,如果失败则返回None

成功载入图像后我们可以使用imshow去显示它:

if img is not None:
    cv.imshow('hello opencv', img)
    cv.waitKey(0) # 按键盘任意键退出

cv.imshow会打开一个窗口用于显示图像,该函数的第一个参数是窗口标题的字符串;第二个是图像的numpy数组。此外,我们还需要调用cv.waitKey(0)去阻塞程序,该函数会阻塞程序直到接收到一个键盘输入。

使用imwrite可以将图像的numpy数组写入到图像文件:

cv.imwrite('./python2.jpg', 255 - img)

cv.imwrite一般接收两个参数,第一个为保存的文件路径;第二个是图像的numpy数组,我们用255减去原来的图像数组得到一个新的图像数组并保存「利于区分」。

图像缩放

对图像进行缩放可以使用cv.resize函数:

img = cv.resize(img, (100, 100))

这里我们为cv.resize传入了两个参数,第一个是原始图像的numpy数组;第二个是缩放后的宽与高,是个元祖。该函数将返回缩放后的图像数组。

其它操作

除此之外,OpenCV还有许多功能,例如:图像裁剪,几何变换,颜色空间,阈值处理,形态学操作,角点检测,轮廓检测,目标检测…… 感兴趣的朋友可以自己上网搜索相关专题。

下篇 影像处理・调用摄像头