目录
10.1 OpenCV的Python接口
OpenCV 是一个 C++ 库,它包含了计算机视觉领域的很多模块。除了 C++ 和 C, Python 作为一种简洁的脚本语言,在 C++ 代码基础上的 Python 接口得到了越来越广泛的支持。
OpenCV 2.3.1 版本实际上提供了两个 Python 接口。旧的 cv 模块使用 OpenCV 内部 数据类型,并且从 NumPy 使用起来可能需要一些技巧。新的 cv2 模块用到了 NumPy 数组,并且使用起来更加直观 1 ,可以通过以下方式导入新的 cv2 模块:
import cv2
10.2 OpenCV基础知识
10.2.1 读取和写入图像
载入一张图像,打印出图像大小,对图像进行转换并保存为 .png 格式:
实验代码:
import cv2
# 读取图像
im = cv2.imread('suiyuan.jpg')
# 获取图像尺寸
h, w = im.shape[:2]
print(h, w)
# 保存图像为 .png 格式
cv2.imwrite('suiyuanresult.png', im)
分析:
- 读取图像:使用
cv2.imread
函数加载图像文件。 - 获取尺寸:通过
im.shape[:2]
获取图像的高度和宽度。 - 打印尺寸:输出图像的高度和宽度。
- 保存图像:使用
cv2.imwrite
函数将原图保存为 PNG 格式。
结果:
10.2.2 颜色空间
实验代码:
import cv2
# 读取图像
im = cv2.imread('suiyuan.jpg')
# 创建灰度图像
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
# 获取原图像尺寸
h, w = im.shape[:2]
print(f'Original Image Size: {h}x{w}')
# 保存灰度图像
cv2.imwrite('gray_image.png', gray)
# 将原图像转换为 RGB 格式
rgb_image = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
cv2.imwrite('result_rgb.png', rgb_image)