1、打开图像
# 路径可带汉字,图像数据RGB
image = Image.open('test.jpg')
# 路径不可带汉字,图像数据BGR
cv2image = cv2.imread('test.jpg')
# 路径可带汉字,图像数据BGR
# cv2.IMREAD_COLOR:默认参数,读入彩色图像,忽略alpha通道,可用1代替
# cv2.IMREAD_GRAYSCALE:读入灰度图像,可用0代替
# cv2.IMREAD_UNCHANGED:读入完整图像,包括alpha通道,可用-1代替
cv2image = cv2.imdecode(np.fromfile('test.jpg', dtype=np.uint8),cv2.IMREAD_COLOR)
2、显示图像
image.show()
cv2.imshow('cv2image',cv2image)
cv2.waitKey()
3、保存图像
# 路径可带汉字
image.save('test.jpg')
# 路径不可带汉字
cv2.imwrite('cv2image.jpg',cv2image)
# 路径可带汉字
cv2.imencode('.jpg',cv2image)[1].tofile('cv2image.jpg')
4、图像尺寸变化
image = image.resize((200,100),Image.NEAREST)
print (image.size) #(200,100)
cv2image = cv2.resize(cv2image, (200,100), interpolation=cv2.INTER_LINEAR)
print (cv2image.shape) #(100, 200, 3)
5、图像颜色转换
image_hsv = image.convert('HSV')
image_rgb = image_hsv.convert('RGB')
image_l = image_rgb.convert('L')
cv2image_gray = cv2.cvtColor(cv2image_bgr, cv2.COLOR_BGR2GRAY)
cv2image_bgr = cv2.cvtColor(cv2image_gray, cv2.COLOR_GRAY2BGR)
6、图像深度16位转8位
cv2image = np.array(image)
cv2image = (cv2image - cv2image.min()) / (cv2image.max() - cv2image.min())
cv2image = cv2image * 255
cv2image = cv2image.astype(np.uint8)
image = Image.fromarray(cv2image)
cv2image = (cv2image - cv2image.min()) / (cv2image.max() - cv2image.min())
cv2image = cv2image * 255
cv2image = cv2image.astype(np.uint8)
7、截取部分图像
# (left, top, right, bottom)
image = image.crop((585, 15, 800, 50))
# (top:bottom, left:right)
cv2image = cv2image[15:50, 585:800]
8、获取某一点像素值
image = Image.open('test.jpg')
r, g, b = image.getpixel((640,440)) #(w, h)
print(r, g, b )
cv2image = cv2.imread('test.jpg')
b, g, r = cv2image[440, 640] #[h, w]
print(b, g, r)
9、在图像上打印文字
from PIL import Image, ImageDraw, ImageFont
# 可打印汉字
image = Image.open('test.jpg')
draw = ImageDraw.Draw(image)
# fontStyle = ImageFont.truetype('simsun.ttc', textSize, encoding="utf-8")
fontStyle = ImageFont.truetype('simsun.ttc', 100, encoding="utf-8")
# draw.text((left, top), text, fill=None, font=None, anchor=None, spacing=0, align='left')
draw.text((10, 10), '你好', (255,0,0), fontStyle)
image.show()
import cv2
# 不可打印汉字
cv2image = cv2.imread('test.jpg')
# cv2.putText(img, text, (left, Bottom), fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
cv2.putText(cv2image, 'Hello', (10, 30), 0, 1, (0,0,255), thickness=None, lineType=None, bottomLeftOrigin=None)
cv2.imshow('test', cv2image)
cv2.waitKey()
欢迎点赞和关注!您的支持是我前进的动力!