当前位置: 首页 > news >正文

opencv的颜色通道问题 rgb bgr

文章目录

  • 🌕原图
  • 🌕opencv读取该图片然后显示和保存
    • 🌙imshow显示和imwrite保存的结果
    • 🌙用plt显示opencv读取的图片
    • 🌙原理和结论
  • 🌕参考文章

opencv是按bgr格式读取,plt是按rgb格式读取。

🌕原图

现给出一个图片reg.jpg进行测试:
在这里插入图片描述

🌕opencv读取该图片然后显示和保存

import cv2
import numpy as np
import matplotlib.pyplot as pltimage_bgr = cv2.imread("red.jpg")
cv2.imshow("Original Image (BGR)", image_bgr)
cv2.imwrite("output_bgr.jpg", image_bgr)  # 保存为原始 BGR 格式

🌙imshow显示和imwrite保存的结果

imshow显示的结果:
在这里插入图片描述
imwrite保存的output_bgr.jpg
在这里插入图片描述

不是说opencv是按bgr顺序读取吗? 为什么显示和保存的代码都没有问题?

🌙用plt显示opencv读取的图片

import cv2
import numpy as np
import matplotlib.pyplot as pltimage_bgr = cv2.imread("red.jpg")
cv2.imshow("Original Image (BGR)", image_bgr)
cv2.imwrite("output_bgr.jpg", image_bgr)  # 保存为原始 BGR 格式# 新增plt显示Opencv读取的代码
plt.subplot(1,1,1);plt.imshow(image_bgr);plt.axis('off');plt.title('bgr')
plt.show()

在这里插入图片描述
发现imshow显示的是正常的但是plt显示的是不正常的。

🌙原理和结论

原因是:

opencv的imshow和imwrite让我们看到的图像颜色是RGB的,但其实其存储是按BGR来存储的。

opencv遵循的是bmp位图格式,即存储阵列为BGR,通道按BGR排列,imshow和imwrite会将通道自动转为RGB。所以到的imshow和imwrite结果是正常的。

读取前图片状态: r g b 
读取后未显示前的图片状态:b g r 
imshow显示与imwrite保存后的图片状态:r g b

plt读取的是 读取后未显示前的图片状态 ,此时图片通道顺序是b g r,但是plt不知道,它只把第一个通道当作r通道显示,所以最终显示的颜色颠倒。

🌕参考文章

CV2逐步学习-1.imread()详解+cvtColor()颜色空间转换

http://www.dtcms.com/a/266876.html

相关文章:

  • 智绅科技:以科技为翼,构建养老安全守护网
  • Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
  • 八股学习(三)---MySQL
  • 高流量发布会,保障支付系统稳定运行感想
  • Flink-05学习 接上节,将FlinkJedisPoolConfig 从Kafka写入Redis
  • 关于python
  • Javaweb - 10.2 Servlet
  • 【51单片机倒计时选位最右侧2位显示秒钟后最左侧1位显示8两秒后复位初始状态2个外部中断组合按键功能】2022-7-5
  • 数据库位函数:原理、应用与性能优化
  • Nuxt 3 面试题合集(中高级)
  • 在 C++ 中,判断 `std::string` 是否为空字符串
  • 【贪心】P2660 zzc 种田
  • Rust 中的返回类型
  • 指数分布的Python计算与分析
  • 微服务架构下的抉择:Consul vs. Eureka,服务发现该如何选型?
  • 简单 Python 爬虫程序设计
  • 递推|递归|分治
  • Python 办公实战:用 python-docx 自动生成 Word 文档
  • 【ROS2 自动驾驶学习】01-工具链的安装
  • 过滤器应用
  • MySQL分布式ID冲突详解:场景、原因与解决方案
  • Hive UDF 开发实战:MD5 哈希函数实现
  • 每周资讯 | Krafton斥资750亿日元收购日本动画公司ADK;《崩坏:星穹铁道》新版本首日登顶iOS畅销榜
  • 只出现一次的数字2
  • 暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
  • HarmonyOS免密认证方案 助力应用登录安全升级
  • 使用 DigitalPlat 免费搭配 Cloudflare Tunnel 实现飞牛系统、服务及 SSH 内网穿透教程
  • 计算机视觉---RealSense深度相机技术
  • 【C++类和对象解密】面向对象编程的核心概念(中)
  • Android Studio-Git的使用指南