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)
相关推荐
国雪2 小时前
python-协程
python
一木 之林2 小时前
Python.六.(一)--1.标准库、常用工具与基础操作(进阶)
python·rpc·dubbo
月光船幽幽2 小时前
铁牌协议卡:节流与重构
python·重构
骇客野人3 小时前
Linux 服务器 Python 版 MCP 服务部署整体方案(适配 Claude/Cursor/自研Agent)
linux·服务器·python
AI视觉网奇3 小时前
动作识别 视频理解大模型
开发语言·python·音视频
Java尧哥学AI3 小时前
35岁Java程序员学AI Day2:从装环境到写第一行Python,踩了3个坑
python
zhiSiBuYu05174 小时前
Flask Session 与 Cookie 新手实战指南
后端·python·flask
码云骑士4 小时前
104-实战论文搜索引擎-ArXiv爬取-Milvus存储-RAG问答-Gradio前端
前端·python·搜索引擎·milvus
比高创意品牌策划设计4 小时前
零售卖场门头设计怎么做才显眼
python
鬼手点金4 小时前
Scrapy + Playwright 完整示例(JS 动态渲染网页)
开发语言·javascript·爬虫·python·scrapy·html·json