1.环境:windows10、Python3.6、OpenCV3.x、PIL;IDE:pycharm5.0.3
2.读取图片:
read_image.py
from PIL import Image,ImageDraw,ImageFont
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("viking.jpg")
pil_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
pilimg = Image.fromarray(pil_img)
cv2.imshow("origial",img)
cv2.imshow(pilimg)
cv2.waitKey()
cv2.destroyAllWindows()
本想试试用cv2.imshow()函数显示pilimg,但提示出错:
Traceback (most recent call last):
File "G:/Python_work/test/测试图片显示中文.py", line 11, in <module>
cv2.imshow("pilimg",pilimg)
TypeError: mat is not a numpy array, neither a scalar
证明经过Image.fromarray()函数转换后的图片已经不是数组格式,而cv2.imshow()函数是读取数组类型的图片的,想显示转换后的图片可用plt.imshow().关于Image.fromarray()函数可百度。
如下: