images/blog-posts

影像处理・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还有许多功能,例如:图像裁剪,几何变换,颜色空间,阈值处理,形态学操作,角点检测,轮廓检测,目标检测…… 感兴趣的朋友可以自己上网搜索相关专题。

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

SUBSCRIBE


🔒 No spam. Unsubscribe any time.

About kk

kk

Vincenzo Antedoro is an engineer who helps those who want to invest in renewables. For the rest he enjoys teaching with the method of learning by doing..

» More about kk