• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解OpenCV和PIL读取和显示图像的差异

    本博客演示使用OpenCV和PIL读取和显示图像的差异。

    首先来看一下原始的bgr图像 src.jpg

    1. 使用cv2读取src.jpg并转为rgb格式的src_rgb.jpg并显示和保存

    #首先读入并保存为rgb图像
    src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src.png' # bgr
    img = cv2.imread(src_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    cv2.imshow('src_rgb.png', img)
    cv2.imwrite('src_rgb.png', img)
    cv2.waitKey(5000)

    2. 使用cv2读取src_rgb.jpg并显示, 发现仍为rgb格式

    # 读入rgb格式的图像并保存
    src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src_rgb.png' # rgb
    img = cv2.imread(src_path)
    cv2.imshow('src_rgb.png', img)
    cv2.waitKey(5000)

    由此可见cv2读取bgr格式图片为bgr格式读入;读取rgb格式图片为rgb格式读入。

    3. 使用PIL读取src.jpg并显示

    # 使用PIL读取bgr格式图片并显示
    src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src.png' # bgr
    img = Image.open(src_path)#.convert("RGB")
    print(img.mode)
    img.show("src.png")

    由此可见PIL读入bgr格式图片为读入后是rgb格式

    4. 使用PIL读取src.jpg并转为numpy的array格式图片并显示

    # 使用PIL读取bgr格式图片并显示
    src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src.png' # bgr
    img = Image.open(src_path)#.convert("RGB")
    print(img.mode)
    img = np.array(img) # rgb
    cv2.imshow("src.png",img)
    cv2.waitKey(5000)

    所以进一步坐实了PIL读入bgr格式图片为读入后是rgb格式

    5. 使用PIL读取rgb格式src_rgb.jpg并显示

    # 使用PIL读取rgb格式图片并显示
    src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src_rgb.png' # rgb
    img = Image.open(src_path)#.convert("RGB")
    print(img.mode)
    # img1 = img.load()
    # print(img1[0,0])
    #img.show()
    img = np.asarray(img) # bgr
    #print(img)
    cv2.imshow("src_.png",img)
    cv2.waitKey(5000)

    可见PIL读入rgb顺序图片后虽然为RGB格式,但是其实通道顺序为BGR格式图片

    总结:

    cv2读取BGR图片 img = cv2.imread('src.png'),其中img为BGR通道顺序的图片
    cv2读取RGB图片 img = cv2.imread('src.png'),其中img为RGB通道顺序的图片
    PIL读入BGR图片 img = Image.open('src.png'),显示img为RGBA格式,其中img为RGBA通道顺序的图片; img = img.convert('RGB')后,img为RGBA通道顺序的图片
    PIL读入RGB图片 img = Image.open('src_rgb.png'),虽然显示img为RGB格式,但是img为通道顺序为BGR格式的图片。

    到此这篇关于详解OpenCV和PIL读取和显示图像的差异的文章就介绍到这了,更多相关OpenCV和PIL读取和显示图像 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python读取并显示图片的三种方法(opencv、matplotlib、PIL库)
    上一篇:Python绘制雷达图时遇到的坑的解决
    下一篇:python Pool常用函数用法总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解OpenCV和PIL读取和显示图像的差异 详解,OpenCV,和,PIL,读取,显示,