目录
前言
一、使用PIL中的Image
二、使用OpenCV
实验结果总结
有时会用到PIL中的Image和OpenCV中的cv2对图片进行操作
使用PIL中的Image来进行读,显示,保存。使用cv2.cvtColor()颜色空间转换
示例如下:
from PIL import Image
import cv2
import numpy as np
img_path = r"D:\1.PNG"
save_location = r"D:\2.png"
image_one = Image.open(img_path)
image_one.show()
# 宽,高,格式:image_one.width, image_one.height, image_one.format
width, height = image_one.size # 返回(width, height)
image_one.save(save_location)
# np.asarray(image) PIL image转换为array
image_rgb2bgr = cv2.cvtColor(np.asarray(image_one), cv2.COLOR_RGB2BGR)
cv2.imshow("image_rgb2bgr", image_rgb2bgr)
cv2.waitKey(0)
示例如下:
import cv2
img_path = r"D:\1.PNG"
save_location = r"D:\2.png"
img = cv2.imread(img_path)
cv2.imshow("img", img)
cv2.waitKey(0)
img_rgb2bgr = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
cv2.imshow("img_rgb2bgr", img_rgb2bgr)
cv2.waitKey(0)
# img.shape返回(height, width, channel) channel=3, 表示彩色图片
height, width = img.shape[0], img.shape[1]
cv2.imwrite(save_location, img)
1. 显示一张无背景的图片,发现: 使用Image.open(),显示的还是无背景的图片。 PIL中使用RGB模式 使用cv2.imread(), 显示的是自动黑色背景的图片。 OpenCV中使用BGR模式 2. cv2.imread()读出来的格式是BGR, 常见的是RGB, 发现: 示例中,同样是RGB转化为BGR, 显示的颜色不一样 cv2.imread()类型为:numpy.ndarray cv2.imread()第2个参数值为-1时,加载图像,包括alpha通道 3. cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。 灰度图片并不是指常规意义上的黑白图片,只用看是不是无符号八位整型(unit8),单通道即可判断。