美文网首页
Opencv,PIL图像读取,转换,保存,显示

Opencv,PIL图像读取,转换,保存,显示

作者: 赵小闹闹 | 来源:发表于2019-04-24 17:48 被阅读0次

    1.普通RGB图像为三个通道,转换为灰度图为一个通道
    2.Opencv

    import cv2  
    #打开图片并显示
    img = cv2.imread("./cat.png") 
    cv2.imshow("Image", img) 
    cv2.waitKey (0)
    #将彩色图像转成灰度图像,利用opencv自带的cvtColor可以将彩色图像转成灰度图像
    gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    #查看图片通道格式
    gray_image.shape
    #img.shape 返回图像高(图像矩阵的行数)、宽(图像矩阵的列数)和通道数3个属性组成的元组,若图像是非彩色图,则只返回高和宽组成的元组。
    #图像存储
    cv2.imwrite('./new_img2.jpg',gray_image)
    

    cv2.imread()会默认以彩色模式读取图片,这样黑白图片读取后也成了三通道,想以图片原始模式读取使用

    img = cv2.imread("./cat.png",-1)
    

    使用cv2.imshow()展示图片时,需要加上cv2.waitKey (0),否则会一跳而过。

    cv2.imshow("Image", img) 
    cv2.waitKey (0)
    

    3.PIL

    #1、显示图片
    from PIL import Image
    im = Image.open('lena.png')
    im.show()
    #2、将 PIL Image 图片转换为 numpy 数组
    im_array = np.array(im)
    #3、保存 PIL 图片
    #直接调用 Image 类的 save 方法
    
    from PIL import Image
    I = Image.open('lena.png')
    I.save('new_lena.png')
    #5、RGB 转换为灰度图、二值化图
    from PIL import Image
    I = Image.open('lena.png')
    I.show()
    L = I.convert('L')   #转化为灰度图
    L = I.convert('1')   #转化为二值化图
    L.show()
    #查看图片模式
    lena=Image.open('lena.png')
    lena.mode
    #输出RGB为彩色图片,通道数为3,输出'L'者"1"为灰度及黑白图,通道数为1
    
    

    1:1位像素,表示黑和白,但是存储的时候每个像素存储为8bit。
    L:8位像素,表示黑和白
    RGB:3x8位像素,为真彩色。

    重要的一点时图像只要经过转换及存储后,其模式就不会变,只是读取时以不同的模式读会有差异,不用担心

    相关文章

      网友评论

          本文标题:Opencv,PIL图像读取,转换,保存,显示

          本文链接:https://www.haomeiwen.com/subject/svaggqtx.html