python读取图像

原图:

import cv2  # 利用opencv读取图像
import numpy as np
# 利用matplotlib显示图像
import matplotlib.pyplot as plt

img = cv2.imread("./lena.png") #读取图像
# 显示图像
plt.imshow(img)
plt.axis('off')
plt.show()

效果:

问:为什么画出的图像和原图有色差呢?
答:opencv的颜色通道顺序为[B,G,R],而matplotlib的颜色通道顺序为[R,G,B]。
解决方案:把R和B的位置调换一下

img = img[:,:,(2,1,0)]

再次显示图像
效果:(自己做了就知道了)

图像灰度化算法Gray = 0.299R+0.587G+0.114*B

r,g,b = [img[:,:,i] for i in range(3)]
img_gray = r*0.299+g*0.587+b*0.114

再次显示图像

plt.imshow(img_gray)
plt.axis('off')
plt.show()

问:为什么她绿了?
答:因为我们还是直接使用plt显示图像,它默认使用三通道显示图像。
解决方案:在plt.imshow()添加参数

plt.imshow(img_gray,cmap="gray")
plt.axis('off')
plt.show()

效果:

opencv的颜色通道顺序为[B,G,R],matplotlib的颜色通道顺序为[R,G,B]相关推荐

  1. b g opencv读入的图片 r,OpenCV 读取摄像头并显示图像的R、G、B三个通道的直方图...

    1.读取摄像头 2.从一副彩色图像中分离出R.G.B三个通道(cvSplit) 3.  分别对每个通道图像创建直方图,并显示 源码如下: // Camera_Capture_Histogram.cpp ...

  2. OpenCV入门(3):图像的组成,色彩空间及通道的分离合并

    图像的组成 灰度:灰度使用黑色调表示物体,即用黑色为基准色,不同的饱和度的黑色来显示图像. 每个灰度对象都具有从 0%(白色)到 灰度条100%(黑色)的亮度值.灰度最高相当于最高的黑,就是纯黑.灰度 ...

  3. Opencv与Matplotlib图片颜色展示不一致

    网上找到的车牌图片如下:蓝色底. 当使用opencv和matplotlib分别展示读取的图片的时候,发现展示的颜色不一致. 网上查到了相关资料,opencv库中读取图片颜色通道为BGR,而plt.im ...

  4. python修改rgb红色通道为黑白_opencv-python 简单的RGB通道分别二值化(提取特定颜色)...

    本文借鉴了https://blog.csdn.net/sinat_40661696/article/details/80142217 这位老哥最后合并色彩时忽略了一个问题 cv中RGB的顺序是BGR ...

  5. Python,OpenCV鼠标事件进行矩形、圆形的绘制(随机颜色、随机半径)

    Python,OpenCV鼠标事件进行矩形.圆形的绘制(随机颜色.随机半径) 1. 效果图 2. 源码 参考 这篇博客将介绍鼠标事件,并介绍鼠标事件矩形.圆形的绘制: 所有的鼠标事件(左键按下.左键释 ...

  6. 算法分析与设计实践 - 作业12 - 给定无向连通图G和m种颜色

    1.问题 给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色.如果要求G的每条边的两个顶点着不同颜色.给出所有可能的着色方案:如果不存在,则回答"NO". 2. ...

  7. python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题

    python中plt.imshow与cv2.imshow显示颜色问题 在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象. 这是因为:opencv的接口使用BGR ...

  8. 图片一:单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)

    图片的概念经常搞不清楚,导致对图片处理很糟糕.感觉还是总结下比较好,省的每次都要找一堆博客看.下面的内容是博主个人理解,不能保证全部正确,如有错误,敬请指出. 1.图片:通常指的是数字图片,数据结构通 ...

  9. matplotlib设置颜色、标记、线条,让你的图像更加丰富

    今天是数据处理专题的第11篇文章,我们继续来介绍matplotlib这个包的使用方法. 在上一篇文章当中我们介绍了matplotlib当中subplot的概念以及用法,今天我们将会来介绍matplot ...

最新文章

  1. JAVA单线程以及java多线程的实现方式
  2. c++求矩阵的秩_一篇文章搞定矩阵相关概念及意义通俗解释汇总
  3. 【ArcGIS遇上Python】三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例
  4. OpenCV学习笔记(三):图像对比度、亮度调整源码
  5. python一行输出多个数据_Python高效数据分析的8个技巧
  6. 怎么查看表用了那个序列_知识分享008:怎样在手机上用萤石云查看海康威视监控录像...
  7. java基础_集合List与Set接口
  8. C++/Qt中文显示乱码与string/wstring/wchar_t转换
  9. Map 转 json格式 保留null值的解决办法
  10. win10中安装step7 5.6
  11. amd显卡风扇调节_显卡风扇转速调节
  12. NDTTS-II变压器综合试验系统
  13. The jar of this class file belongs to container 'JUnit 4' which does not allow ...
  14. 概率论实验 04 - | 基于Matlab的匹配滤波器
  15. 极路由 斐讯K2 Newifi 华硕固件 实现ipv6穿透方法
  16. confluence挖矿病毒(kdevtmpfsi 、solrd)解决
  17. python共享单车数据分析_利用python分析共享单车项目
  18. matlab空间计量AIC准则,关于AIC准则
  19. 条形码扫描模块的作用是什么?有什么应用意义?
  20. 微步在线安全事件分析:全球数亿主机被FireBall攻陷

热门文章

  1. 聊城大学计算机专业学好,计算机专业热门院校推荐:聊城大学
  2. java内存模型 final_聊聊Java内存模型
  3. 土壤温湿度传感器传感器内置信号采样及放大、漂零及温度补偿功能
  4. VS助手工具Visual Assist X 安装和卸载指导手册
  5. 计网第2周作业(2022.9.5-2022.9.11)
  6. Android相机之人脸识别
  7. Win10无法拖动文件怎么办?Win10系统无法拖动文件的解决方法
  8. IDEA使用注释技巧
  9. 可靠的手机问题修复工具分享 - 修复各种 Android 系统问题
  10. 【量化交易笔记】2.数据本地化存储(CSV)