https://www.cnblogs.com/shizhengwen/p/8719062.html
cv2图片打开与保存
# 读取图片
cv2.imread(image_path)
# (图片存放路径,处理后的图片),在保存时应注意加后缀(.jpg)
cv2.imwrite(new_path, new_image)
(1)读入图像:
使用函数cv2.imread(filepath,flags)读入一副图片
- filepath:要读入图片的完整路径
- flags:读入图片的标志
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
注:cv2会把图片变成np.ndarray()格式,且默认读取三通道的图片
cv2.imread(image, 0) # 读取灰度图
cv2.imread(image, 1) # 读取三通道图片,默认使用此格式
(2)使用函数cv2.imshow(wname,img)显示图像,
- 第一个参数是显示图像的窗口的名字
- 第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小
(3)使用函数cv2.imwrite(file,img,num)保存一个图像。
- 第一个参数是要保存的文件名。
- 第二个参数是要保存的图像。
- 可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3.
Image图片打开与保存
# 读取图片
image = Image.open(image_path)
# 保存图片
image.save("./results/image_save_20200509.jpg")
cv2与Image的格式转换:
opencv读取到的数据是BGR格式,在展示时可以使用[:,:,::-1]调整颜色
Image读取到的数据是RGB格式
(1)cv2转Image
import cv2
from PIL import Image
#img为之前使用cv2读取的图片数据
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
(2)Image转cv2
import cv2
from PIL import Image
#img1为之前使用Image读取的图片数据
img1 = cv2.cvtColor(np.array(img1), cv2.COLOR_RGB2BGR)
注意:在使用np做类型转换时,
如:np.mean(left_eye, axis=0).astype(“int”)
该类型为np.int32,再后续处理时需注意是否需要将其转为int类型
两个库读取到的图片shape皆为(width,height,channel)