CH02-初识 openCV
1. 图片在计算机中的存储形式
- BGR 图
- 灰度图
- 0~黑色
- 255~白色
- HSV 图
| 通道 | 含义 | 数值 |
|---|---|---|
| H | 色度 | 0~179 |
| S | 饱和度 | 0~255 |
| V | 亮度 | 0~255 |
- 二值图
- 每个像素点的取值只有 0 或 255 两个值
2. 图片的读取与写出
2.1 图片的读取
cv2.imread(filename,flag = 1)
| 参数 | 说明 |
|---|---|
| filename | 所读取的图片的相对地址 |
| flag | 设置读取的格式: 1-按照 BGR 三通道的方式进行读取; 0-以灰度图单通道的方式进行读取 |
import cv2
img = cv2.imread('1.jpg') # 等同于img = cv2.imread("1.jpg",1)
img1 = cv2.imread('1.jpg',0)
2.2 图片的保存
cv2.imwrite(filename,img)
| 参数 | 说明 |
|---|---|
| filename | 要保存的图片的名字 |
| img | 要保存的图片的矩阵形式 |
import cv2
img = cv2.imread("1.jpg")
cv2.imwrite('1.png',img)
2.3 图片展示
cv2.imshow(name,img)
| 参数 | 说明 |
|---|---|
| name | 展示窗口的名字 |
| img | 图片的矩阵形式 |
import cv2
img = cv2.imread('1.jpg')
cv2.imshow('img',img)
2.4 图片延时
cv2.waitKey(time)
time 表示等待的时间,单位为毫秒
import cv2
cv2.waitKey(0) # 停止在当前帧,有按键指令才会进入下一帧
2.5 图片读取演示
示例 1:
import cv2
import numpy as np
img = cv2.imread('./img/CH02-1.jpg')
cv2.imshow('img',img)
while True:
if cv2.waitKey(0) == ord('q'):
break
elif cv2.waitKey(0) == ord('s'):
cv2.imwrite('./img/CH02-1.bak.png', img)
break
cv2.destroyAllWindows()
示例 2:
img = cv2.imread('./img/CH02-1.jpg')
cv2.namedWindow('img',cv2.WINDOW_AUTOSIZE)
cv2.imshow('image',img)
if cv2.waitKey(5000) == ord('s'):
cv2.imwrite('./img/CH02-1-bak.jpg',img)
cv2.destroyAllWindows()
2.6 图片属性
灰度图的 img.shape只会返回图片的行数和列数
img = cv2.imread('./img/CH02-1.jpg')
print(img.shape) # 整个成员
print(img.shape[0]) # 行数
print(img.shape[1]) # 列数
print(img.shape[2]) # 通道数