matplotlib的imshow显示图片颜色正常,用cv2保存颜色不对

OpenCV默认使用BGR颜色通道顺序来读取和显示图片,而matplotlib使用的是RGB颜色通道顺序。当你直接使用cv2.imwrite保存由matplotlib处理的图片数组时,如果直接保存,OpenCV可能会按照BGR顺序解释数据,导致颜色不正确。

解决方法:

在保存图片之前,将图片从RGB转换为BGR。可以使用numpy的ndarray.transpose方法或者cv2.cvtColor方法进行转换。

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 假设img是从matplotlib获取的图像数据
img = plt.imread('your_image.png')  # 读取图片,这里已经是RGB格式

# 转换为BGR格式
img_bgr = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# 现在保存图片
cv2.imwrite('output_image.png', img_bgr)
相关推荐
A__tao4 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢4 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
迷藏4944 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨5 小时前
python扫码登录dy
开发语言·python
bazhange5 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
人工干智能5 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
unicrom_深圳市由你创科技5 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
小敬爱吃饭5 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
宸津-代码粉碎机6 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
知行合一。。。6 小时前
Python--04--数据容器(集合)
python