引用的模块为import cv2
1. 图像读取
1.1 图像变成数据
函数接口:img=cv2.imread("相片绝对路径or相对路径")
import cv2
img = cv2.imread("578.jpg") #img是一个numpy.ndarray对象,默认是以BGR三通道读取图片数据(三维数组)
- 函数返回的是什么:
跟注释一样,该函数返回的是存储着图像BGR(Blue、Green、Red)信息的三维数组;
1.1.1 BGR和RGB
RGB代表红绿蓝。大多数情况下,RGB颜色存储在结构或无符号整数中,蓝色占据最不重要的“区域”(32位和24位格式的字节),绿色第二少,红色第三少。
BGR是相同的,除了区域顺序颠倒。红色占据最不重要的区域,绿色占第二位(静止),蓝色占第三位。
示例:
#FF0000在读取为RGB十六进制颜色(#rrggbb)时为纯红色,因为第三个区域(数字从右向左读取!)为FF(最大值,全彩色),其他两个区域为00(最小值)价值,没有颜色).如果#FF0000被读作BGR十六进制颜色,则它是纯蓝色。
1.1.2 关于三维数组的解释
for(高)
{
for(宽)
{
for(BGR[x,x,x])
}
}
1.2 提取图片信息
函数接口:img.shape
返回元组:(高,宽,通道数)
1.3 显示图片
函数接口:cv2.imshow('方框标题', 存储图像的三维数组)
使用这个函数之后则会把图片显示出来,但是一闪而过当然是不行了,所以我们添加了一个暂停函数cv2.waitKey(0)
# 显示图片
cv2.imshow('pic title', img)
cv2.waitKey(0)
2. 图片的写入
2.1 添加文字
函数接口:cv2.putText(存储图片的三维数组,“打印的字符”,(x,y),字体,字号大小,(颜色B,G,R),字体厚度)
# 添加文字
cv2.putText(img, 'Learn Python with OpenCV', (640-255, 853-255), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 3)
2.2 保存图片
函数接口:cv2.imwrite('绝对路径/.图片格式or相对路径', img)
# 保存图片
cv2.imwrite('Lenna_new.png', img)