• opencv和matplotlib库图像读写显示对比和总结


    图片格式:

    • bmp
      • 全称:Bitmap
      • 不压缩
    • png
      • 全称:Portable Network Graphics
      • 无损压缩
    • jpg
      • 全称:Joint Photographic Experts Group
      • 有损压缩

    opencv(python)中图像读写显示:

    import cv2 as cv
    
    new_img = cv.imread('baby.png') # 文件大小:362KB
    
    # bmp
    cv.imwrite('img_bmp.bmp',new_img) # 文件大小:768KB
    
    # jpg 默认95%质量
    cv.imwrite('img_jpg95.jpg',new_img) # 文件大小:90.7KB
    # jpg 20%质量
    cv.imwrite('img_jpg20.jpg',new_img,[int(cv.IMWRITE_JPEG_QUALITY),20]) # 文件大小:13.2KB
    # jpg 100%质量
    cv.imwrite('img_jpg100.jpg',new_img,[int(cv.IMWRITE_JPEG_QUALITY),100]) # 文件大小:183KB
    
    # png 默认1压缩比
    cv.imwrite('img_png1.png',new_img) # 文件大小:431KB
    # png 9压缩比
    cv.imwrite('img_png9.png',new_img,[int(cv.IMWRITE_PNG_COMPRESSION),9]) # 文件大小:366KB
    
    cv.imshow('result',new_img)
    
    cv.waitKey(0)
    cv.destroyAllWindows()
    

    Matplotlib库中图像读写显示

    Matplotlib是Python的一个很常用的绘图库。OpenCV中的图像是以BGR的通道顺序存储的,但Matplotlib是以RGB模式显示的,所以直接在Matplotlib中显示OpenCV图像会出现问题,因此需要转换一下。

    # Writer : wojianxinygcl@163.com
    # Date   : 2020.3.27
    import cv2 as cv 
    import matplotlib.pyplot as plt
    
    # img = pli.imread('baby.png')
    
    img = cv.imread('baby.png')
    # 图像复制 + BGR->RGB
    img2 = img[:, :, ::-1]
    # or
    # img2 = cv.cvtColor(img, cv.COLOR_BGR2RGB)
    
    plt.figure(1)
    
    # 显示不正确的图
    plt.subplot(121)
    plt.xticks([]), plt.yticks([]) # 隐藏x和y轴
    plt.axis('off') # 去图像边框
    plt.title('False Channel Show')
    plt.imshow(img)
    
    # 显示正确的图
    plt.subplot(122)
    plt.xticks([]), plt.yticks([]) # 隐藏x和y轴
    plt.axis('off') # 去图像边框
    plt.title('Right Channel Show')
    plt.imshow(img2)
    
    plt.savefig('baby_true.jpg') # 在show前面保存图像
    plt.show()
    

    实验输出:

    上面这段代码输出结果

  • 相关阅读:
    MD支持新标签跳转
    线上问题cpu100处理记录
    OpenShift 4.6方式下OperatorHub的变化
    OpenShift 4.5.7 版本基础镜像下载
    GLPI企业使用(一),连接AD域,LDAP登录。
    GLPI配置文件说明:默认权限组
    企业服务器规划
    港股通转托管
    mui实现下拉刷新以及click事件无法响应问题
    asp.net core+websocket实现实时通信
  • 原文地址:https://www.cnblogs.com/wojianxin/p/12584213.html
Copyright © 2020-2023  润新知