首先,介绍第一种方法, 使用  PIL  库,   PIL库是一种python语言常用的一个图形处理库。

关于   PIL  库的安装本文就不介绍了。

from PIL import Image
I = Image.open('C:\\Users\\Administrator\\Desktop\\照片\\timg.jpg')
I.show()
L = I.convert('L')
L.show()
L.save('C:\\Users\\Administrator\\Desktop\\照片\\timg2.jpg')

timg.jpg  文件:

灰度图:

第二种, 便是使用 numpy库  来编写自己的转化函数:

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
def rgb2gray(rgb):
r, g, b=rgb[:, :, 0], rgb[:, :, 1], rgb[:, :, 2]
gray=0.2989*r + 0.5870*g + 0.1140*b
return gray
img=mpimg.imread('C:\\Users\\Administrator\\Desktop\\照片\\timg.jpg')
plt.imshow(img)
plt.show()
img2=rgb2gray(img)
plt.imshow(img2)
plt.show()

结果展示:

采用第二种方法展示的结果图十分的怪异,应该是matplotlib.plot 展示一个通道图片时候需要额外设置的缘故吧,下面找到了一个修正的代码,如下:

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import numpy as np def rgb2gray(rgb):
return np.dot(rgb[..., :3], [0.2989, 0.5870, 0.1140]) img=mpimg.imread('C:\\Users\\Administrator\\Desktop\\照片\\timg.jpg') plt.imshow(img)
plt.show() img2=rgb2gray(img) plt.imshow(img2, cmap=plt.get_cmap('gray'))
plt.show()

结果图:

发现这次的效果还是可以的。

如何使用 python3 将RGB 图片转换为 灰度图的更多相关文章

  1. 机器学习进阶-图像基本处理-视频的读取与处理 1.cv2.VideoCapture(视频的载入) 2.vc.isOpened(载入的视频是否可以打开) 3.vc.read(视频中一张图片的读取) 4.cv2.cvtColor(将图片转换为灰度图)

    1.vc = cv2.VideoCapture('test.mp4') #进行视频的载入 2.vc.isOpened() # 判断载入的视频是否可以打开 3.ret, frame = vc.read( ...

  2. 【python】RGB图片到灰度图的转换

    在做立体匹配求深度图的时候遇到这个问题,用惯了matlab的rgb2gray,倒是不熟悉python的实现,在网上找到了相关方案,记下来已作备用 RGB到灰度图转换公式: Y' = 0.299 R + ...

  3. Android 将ARGB图片转换为灰度图

    思路如下: 1.读取or照相,得到一张ARGB图片. 2.转化为bitmap类,并对其数据做如下操作: A通道保持不变,然后逐像素计算:X = 0.3×R+0.59×G+0.11×B,并使这个像素的值 ...

  4. C# (灰度)加权平均法将图片转换为灰度图

    private Bitmap ToG(string file) { using (Bitmap o = new Bitmap(file)) { Bitmap g = new Bitmap(o.Widt ...

  5. [Xcode 实际操作]六、媒体与动画-(2)使用图形上下文转换图片为灰度图

    目录:[Swift]Xcode实际操作 本文将演示如何将图片转换为灰度图. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...

  6. c语言实现BMP图像转换为灰度图

    当初是自己要装X,非要用c来写信息隐藏作业,装了X,就得付出实践.查了好久资料,到期末才把作业交了,这里总结一下. 这道题是将真彩图转换为灰度图. 关于BMP文件结构,这是困扰了我好久的问题,上网查了 ...

  7. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  8. Android-将RGB彩色图转换为灰度图

    package com.example.yanlei.wifi; import android.graphics.Bitmap; import android.graphics.BitmapFacto ...

  9. Qt 中彩色图像转换为灰度图

    近期在做几个图像处理相关的项目.里面有一个操作就是须要先将彩色图像转换为灰度图像. QImage 有一个convertToFormat方法.最開始一直用这个函数来实现. 可是今天细致看了看,发现这个函 ...

随机推荐

  1. cartographer安装--Ubuntu14.04--indigo

    0.安装所有依赖项 sudo apt-get install -y google-mock libboost-all-dev  libeigen3-dev libgflags-dev libgoogl ...

  2. 使用better-scroll遇到的问题

    项目中想给侧边栏添加一个滚动效果,用better-scroll帮助实现,引入better-scroll后,给外层最大盒子添加了<aside ref="asideMenu"&g ...

  3. C#复制数据到剪切板

    C#复制数据到剪切板 1. 复制固定的数据到剪切板 Clipboard.SetText("123456"); 于是123456就已经复制到剪切板中了,无论在任何地方粘贴都会出现‘1 ...

  4. 部署ovf模板,突然出现用户取消任务。

    查看了网上的文章,自己做了一下实验. 发觉导出ovf模板时,虚拟CDROM的选项要选[客户端设备],导入时才不会出事. 参考连接 http://lukebarklimore.wordpress.com ...

  5. 5-11敏捷开发rails的章节: Rspec(使用方法) ,Slim(使用操作简介)

    Rspec: test Slim :可以取代ERB的模版语言.(简单了解了以下,方便写代码,但我觉得不方便读.还是用原生的html) Webpack管理css: 不再使用app/assets/styl ...

  6. Python中的魔术方法详解

    介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...

  7. python-day21--os模块

     os模块是与操作系统交互的一个接口''' os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作 ...

  8. python-day20--正则表达式与re模块

    1.通过re模块可以做一些关于正则的相关操作 2.正则表达式:做字符串匹配的规则 1)字符组:在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[ ]表示 [0-9][a-f][A-F] ...

  9. ccf行车路线

    #include<bits/stdc++.h> using namespace std; const long long INF = 1e18; int n,m; struct node{ ...

  10. hdu-6319-单调队列

    Problem A. Ascending Rating Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K ...