matlplotlib figure imshow

matplotlib

在pycharm中处理图像和显示时,使用plt.imshow()有时候能显示图像,有时候又不能,发现少了一句plt.show()——Show result on screen,还是得把文档资料看完整啦~~

import matplotlib.pyplot as plt
import matplotlib.image as mgimg
import os   #for open file
import cv2

imgpath = "./imgtest"
imglist = os.listdir(imgpath)
for i in xrange(len(imglist)):
    """choice one----cv2"""
    img = cv2.imread(imgpath + '/' + imglist[i])
    cv2.imshow('img', img)
    cv2.waitKey()
    """choice two----mgimg"""
    img = mpimg.imread(imgpath + '/' + imglist[i])
    plt.imshow(img)
    plt.show()

两者区别好像不大(?),官网上说Natively, matplotlib only supports PNG images. 但是测试的时候用jpg图像仍然可以正常运行显示。
http://matplotlib.org/users/image_tutorial.html
使用时有时候混淆了两种方法,如果用cv2.imread()图像,plt.imshow()显示图像,会发现原图的颜色有变化。

原图:
matlplotlib figure imshow_第1张图片

plt.imshow()显示(可显示坐标及对应像素值,这点比cv2方便):
matlplotlib figure imshow_第2张图片

颜色变化:
matlplotlib figure imshow_第3张图片

解释:
cv2中的色彩排列是(b,g,r),而matplotlib库中的排列方式是(r,g,b)!
reference:http://www.cnblogs.com/pakfahome/p/3917143.html

matplotlib用法这里有总结啦
http://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/

你可能感兴趣的:(python学习路)