图像处理-matplotlib显示opencv图像

  • A+
所属分类:深度学习
摘要这一部分主要介绍图像显示的时候会遇到的问题, 使用matplotlib显示opencv图像, 与遇到的颜色变换的问题, 即从BGR转换为RGB.

简介

我们在处理图像的时候, 会使用到matplotlib和opencv两个库, 但是在实际的使用的时候,  我们会遇到颜色显示不正常的情况, 这是因为matplotlib使用的颜色模式是我们现在流行的RGB模式,而opencv使用的是BGR模式,即RGB的倒序模式,与我们通常的RGB是反向的。因此在使用matplotlib显示之前需要做一下图像颜色的转换。

所以这一篇主要介绍一下转换的方式, 主要参考链接如下.

参考资料: 为什么matplotlib显示opencv图像不正常

matplotlib显示opencv图像

我们首先看一下如果不进行转换的话, 直接显示会是什么样子的.

  1. # 加载本地图片
  2. img_path1 = "./data/Preprocess/402_2000.jpg"
  3. img_check1 = cv2.imread(img_path1, cv2.IMREAD_COLOR)
  4. print(img_check1.shape)
  5. # 图片进行显示
  6. fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(7,7))
  7. axes.axis("off")
  8. axes.imshow(img_check1)

最终显示的效果如下:

图像处理-matplotlib显示opencv图像

我们只需要使用下面的语句就可以完成BGR到RGB的转换.

  1. img_check1 = cv2.cvtColor(img_check1, cv2.COLOR_BGR2RGB) # BGR => RGB

最后我们得到的效果如下所示:

  1. # 加载本地图片
  2. img_path1 = "./data/Preprocess/402_2000.jpg"
  3. img_check1 = cv2.imread(img_path1, cv2.IMREAD_COLOR)
  4. img_check1 = cv2.cvtColor(img_check1, cv2.COLOR_BGR2RGB) # BGR => RGB
  5. print(img_check1.shape)
  6. # 图片进行显示
  7. fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(7,7))
  8. axes.axis("off")
  9. axes.imshow(img_check1)
图像处理-matplotlib显示opencv图像

可以看到这样脸的颜色会看起来稍微正常一些.

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: