Python图片读取和显示

OpenCV

cv = cv2.imread(img_add, [type])
cv2.imshow('image', cv)
cv2.waitKey()
cv2.destroyAllWindows()

imread的参数type可以为
cv2.IMREAD_COLOR BGR图
cv2.IMREAD_GRAYSCALE 灰度图
cv2.IMREAD_UNCHANGED 包含alpha channel的图
分别对应1,0,-1,默认为1,即BGR图。

cv2.imshow的第一个参数是图片名,第二个是numpy矩阵。

cv2.waitKey()等待一个键盘输入,返回输入的值。不加这句程序会卡死无法绘图。

注意
cv2读取的RGB图是按照BGR的顺序存储的,同时如果读取的是灰度图,默认也会存成RGB的格式(只有传入参数0的时候才把图片转换成灰度图),即3个channel都是一样的值,这是OpenCV区别于其他图形库的

matplotlib.image

读取 mpimg.imread(img_add)
显示使用plt.imshow(img, [cmap])
当输入图片是RGB图时,显示为RGB图片;当输入图片时灰度图时,读取到的numpy矩阵是M X N格式,不含有channel信息,这时用colormap来指定0~255值到颜色之间的映射。反之,如果矩阵为M X N X 3维,则cmap参数无效。

colormap有几种分类,需要深入了解的可以看官方文档介绍。
常用的cmap设置

# 参数可以设置为grey,既灰度图可用的,加上_r代表反转
# 更多的预定义的colormap可见官方文档
plt.imshow(image, cmap=plt.get_cmap('gray_r'))
plt.imshow(image, cmap='gray_r')
plt.imshow(image, cmap=plt.cm.binary)

同时还可以自己设置colormap

class ListedColormap(Colormap):
    """Colormap object generated from a list of colors.
    ...
    """
from matplotlib.colors import ListedColormap
colors = ('lightgreen', 'cyan', 'gray', 'r', 'b')
cmp = ListedColormap(colors[:np.unique(y_train)])

更多的图形库

skimage

skimage.io.imread(fname[, as_gray, plugin, …])
skimage.io.imshow(arr[, plugin])

myplot

matplotlib.pyplot.imread(*args, **kwargs)

他们的使用方法都和matplotlib.image差不多

参考
https://blog.csdn.net/lanchunhui/article/details/66972783

猜你喜欢

转载自blog.csdn.net/qq_38255689/article/details/86572082
今日推荐