Image与cv2

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类型

你可能感兴趣的:(python,pytorch,人工智能,python)