处理opencv里用plt显示imread读取图像偏色问题
处理opencv里用plt显示imread读取图像偏色问题
- 摘要
- 代码
- 看看结果:
- 原因:
- 解决方法:
- 看看结果
摘要
使用opecv过程中经常需要使用plt输出图片作为前后对比,方便观察。
但是会出现plt显示时,颜色偏差严重的情况。
这是因为plt和imread二者颜色通道不同导致。
先看看图片
代码
首先通过imread读入源图并显示。
import cv2 as cv
import numpy as np
import copy
import random
from matplotlib import pyplot as plt
# cv.imread 读取图像格式为b,g,r
img = cv.imread('1.jpg')
然后 采用plt方法进行显示。
把imread生成的img使用plt输出。
plt.imshow(img)
plt.show()
看看结果:
出现了色差
原因:
cv.imread 读取图像格式为b,g,r
但是 plt显示按照 rgb次序!因此要转换一下。
解决方法:
加入下面的代码
b,g,r = cv.split(img)
img_rgb = cv.merge([r,g,b])
import cv2 as cv
import numpy as np
import copy
import random
from matplotlib import pyplot as plt
# cv.imread 读取图像格式为b,g,r
img = cv.imread('1.jpg')#如果本身是彩图 似乎也没什么影响!
#plt显示按照 rgb次序!因此要转换
b,g,r = cv.split(img)
img_rgb = cv.merge([r,g,b])plt.imshow(img_rgb)
plt.show()
看看结果
处理opencv里用plt显示imread读取图像偏色问题相关推荐
- Image.open和cv2.imread读取图像的区别,及改变图像分辨率
目录 需求 图像的读取 两者区别 两者相互转换 具体需求代码 需求 需要对一些图片做图像处理,但是原数据图像太大了(2700x2500左右),实际的处理过程中并不需要这么高的分辨率,所以需要对数据进行 ...
- cv2.imread读取图像结果none_keras遥感图像Unet语义分割(支持多波段amp;多类)
前言 网上其实有好多unet的教程,但是大多不支持多波段(遥感图像除了RGB波段还有红外等其他波段),多类别的话标签做onehot编码的时候类别颜色要手动输入.针对这两个问题,今天写下这篇文字. 有问 ...
- cv2.imread读取图像结果none_python cv2.imread 读取中文路径的图片返回为None的问题
此篇文章首发于我的csdn博客,见原文链接. 使用cv2读取图片是常见的事情,但如果,输出图片形状大小时出现报错" 'NoneType' object has no attribute sh ...
- cv2.imread读取图像结果none_PyTorch 42.图像操作
本文转载自: 知乎用户www.zhihu.com 1. 读取训练集 pytorch读取训练集是非常便捷的,只需要使用到2个类: (1)torch.utils.data.Dataset (2)torc ...
- [转载] python+opencv4读取图像
参考链接: Python Opencv 基础 1: imread 读取图像 1安装opencv 2安装jupyter Notebook 1读取图片 import cv2 #opencv读取的格式是BG ...
- 读取图像,显示图像,输出图像像素矩阵
方法一:使用matplotlib import matplotlib import matplotlib.pyplot as plt #显示图像 from matplotlib.image impor ...
- python读取图像的方法总结
以读取下面的图片为例:(其中前两种方法是我自己常用的方法) 1. 利用python图像处理类库PIL(Python Imaging Library)中的Image函数. import numpy as ...
- 图像位深度 8位 16位 24位 32位区别对比 RGB 真彩色 基本概念:(大小,深度,通道)位深度数据类型转换原理 Mat数据读取(opencv里的imread)
位深度 位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的二进制数值位数来表示的.计算机之所以能够显示颜色,是采用了一种称作"位"( bit ) 的记数单位来记录所表 ...
- C++ opencv 4.5 imread() 读取图片,显示为空的解决办法
C++ opencv 4.5 imread() 读取图片,显示为空的解决办法 一.路径问题 先查看下路径问题,如果使用的是相对路径,先查看下当前路径,判断输入的路径是否有错: #include < ...
最新文章
- 【组队学习】【33期】吃瓜教程——西瓜书+南瓜书
- gcc8之前,coredump文件无法显示正确的函数调用栈信息
- Android开发一 什么是3G
- 另一种同步软件Unison的使用方法
- dwf怎么合成一个_PC-3000 Data Extractor如何将一系列Bin文件合并为一个镜像文件
- 声卡是HDA Intel,芯片为IDT 92HD81B1C5的ubuntu12.04下声音很小的解决方法
- python中一元二次方程的判别式_【Python算法作业】解一元二次方程
- 5.3 定积分的换元积分法和分部积分法
- python实验四_实验四 · Python程序设计/20193117whm - Gitee.com
- linux wps 文件关联,WPS文件扩展名 - 什么是.wps以及如何打开? - ReviverSoft
- 计算机玩游戏代码,给计算机学院的学幼们贴一些游戏代码
- java中原子变量AtomicInteger等用法
- unity3d培训_001
- 关于WIN10装CH340驱动的一些小小的注意事项
- windows 10系统下Nexus的下载安装
- JESD204接口调试总结——JESD204C协议的介绍
- MySQL索引原理,设计原则
- 天泉湖酒店式养生社区服务中心漏电火灾监控系统的设计与应用
- linux不需要磁盘碎片整理!
- 微机原理与接口技术:DMA传输 详细笔记