利用Python将彩色图像转为灰度图像的两种方法

目录
  • 第一种方法
  • 第二种方法
  • python 批量将图片转为灰度图
  • 总结

第一种方法

Python的cv2库中自带彩色转灰度的方法,而且非常简单,代码就9行,核心代码就1行。

大题思路就是先读取一张彩色图片,然后在窗口中显示出来,再然后就让cv2处理一下,转换成灰度图像,这时候它是个二维的灰度矩阵,所以,我们想保存得先将它从array转成image,最后在另一个窗口中显示出来,为了避免窗口一闪而过,我们需要加上waitKey(0)这一句。

import cv2
from PIL import Image
#读取彩色图像
color_img = cv2.imread(r'dataset3/beauty.jpg')
#在窗口中显示图像,该窗口和图像的原始大小自适应
cv2.imshow('original image',color_img)
#cvtColor的第一个参数是处理的图像,第二个是RGB2GRAY
gray_img=cv2.cvtColor(color_img,cv2.COLOR_RGB2GRAY)
#gray_img此时还是二维矩阵表示,所以要实现array到image的转换
gray=Image.fromarray(gray_img)
#将图片保存到当前路径下,参数为保存的文件名
gray.save('gray.jpg')
cv2.imshow('Gray Image',gray_img)
#如果想让窗口持久停留,需要使用该函数
cv2.waitKey(0)

第二种方法

PIL中的Image库也自带转灰度图像的方法,然后再用pyplot显示在画布上就行了。一共8行代码,核心代码就1行。

from PIL import Image
from matplotlib import pyplot as plt
color_img=Image.open('dataset3/beauty.jpg')
gray_img=color_img.convert('L')
plt.figure('beauty')
plt.imshow(gray_img,cmap='gray')
plt.axis('off')
plt.show()

python 批量将图片转为灰度图

from PIL import Image
import os
path = 'F:/QUEXIANJIANCESHIYAN/posdata'
file_list = os.listdir(path)
for file in file_list:
    I = Image.open(path+"/"+file)
    L = I.convert('L')
    L.save(path+"/"+file)
    #print(file)

总结

到此这篇关于利用Python将彩色图像转为灰度图像的文章就介绍到这了,更多相关Python彩色图像转为灰度图像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python图像灰度变换及图像数组操作

    使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量.矩阵.图像等)以及线性代数函数. 数组对象可以实现数组中重要的操作,比如矩阵乘积.转置.解方程系统.向量乘积和归一化.这为图像变形.对变化进行建模.图像分类.图像聚类等提供了基础. 在上一篇python基本图像操作中,当载入图像时,通过调用 array() 方法将图像转换成NumPy的数组对象

  • Python读取图像并显示灰度图的实现

    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],

  • Python-numpy实现灰度图像的分块和合并方式

    我就废话不多说了,直接上代码吧! from numpy import * import numpy as np import cv2, os, math, os.path from PIL import Image base="F:\\Spy_CNN\\pythonCode\\cvSPY\\cvTest\\LBP\\LBPImag3\\" base2="F:\\ProgrameCode\\FaceDataLib\\orl_Arry\\" imageOld=cv2.i

  • python 对一幅灰度图像进行直方图均衡化

    from PIL import Image from pylab import * from numpy import * def histeq(im,nbr_bins = 256): """对一幅灰度图像进行直方图均衡化""" #计算图像的直方图 #在numpy中,也提供了一个计算直方图的函数histogram(),第一个返回的是直方图的统计量,第二个为每个bins的中间值 imhist,bins = histogram(im.flatten(

  • Python 将RGB图像转换为Pytho灰度图像的实例

    问题: 我正尝试使用matplotlib读取RGB图像并将其转换为灰度. 在matlab中,我使用这个: img = rgb2gray(imread('image.png')); 在matplotlib tutorial中他们没有覆盖它.他们只是在图像中阅读 import matplotlib.image as mpimg img = mpimg.imread('image.png') 然后他们切片数组,但是这不是从我所了解的将RGB转换为灰度. lum_img = img[:,:,0] 编辑:

  • 利用Python将彩色图像转为灰度图像的两种方法

    目录 第一种方法 第二种方法 python 批量将图片转为灰度图 总结 第一种方法 Python的cv2库中自带彩色转灰度的方法,而且非常简单,代码就9行,核心代码就1行. 大题思路就是先读取一张彩色图片,然后在窗口中显示出来,再然后就让cv2处理一下,转换成灰度图像,这时候它是个二维的灰度矩阵,所以,我们想保存得先将它从array转成image,最后在另一个窗口中显示出来,为了避免窗口一闪而过,我们需要加上waitKey(0)这一句. import cv2 from PIL import Im

  • python文件读取read及readlines两种方法使用详解

    目录 引言 .read([size])方法 .readlines()方法 引言 with open() as 和open()都是打开,还没有读入文件 假设test.fa的内容如下图所示: ACGACGTAGCGTAGCTACGATCAGCGACGAGCTAGCGACGA .read([size])方法 read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它返回字符串对象. with open('test.fa') as fa: f = fa

  • Python识别二维码的两种方法详解

    目录 前言 pyzbar + PIL cv2 前言 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我们生活中不可或缺的一部分. 在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”.“用Python制作动图二维码”之类的文章.而关于使用Python批量识别二维码的教程,并不多见.所以今天我会给大家分享两种批量识别二维码的Python技巧! pyzbar + P

  • laravel框架查询数据集转为数组的两种方法

    方法一: return DB::table('game_matchperiod')->select('starttime')->where('Type',$type)->get() ->map(function ($value) {return (array)$value;})->toArray(); 方法二: public function objToArr($object) { //先编码成json字符串,再解码成数组 return json_decode(json_en

  • python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = count_pu = 0 for s in str: # 英文 if s in string.ascii_letters: count_en += 1 # 数字 elif s.isdigit(): count_dg += 1 # 空格 elif s.isspace(): count_sp += 1 #

  • python 字典中取值的两种方法小结

    如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name']) print a.get('name'),type(a.get('name')) 发现这两个结果完全一致,并没有任何的差异. 怎么选择这两个不同的字典取值方式呢? 如果字典已知,我们可以任选一个,而当我们不确定字典中是否存在某个键时,我之前的做法如下 if 'age' in a.keys(): print a['age'] 因为不先

  • 使用Python将图片转正方形的两种方法实例代码详解

    一.将原图粘贴到一张正方形的背景上 def trans_square(image): r"""Open the image using PIL.""" image = image.convert('RGB') w, h = image.size background = Image.new('RGB', size=(max(w, h), max(w, h)), color=(127, 127, 127)) # 创建背景图,颜色值为127 leng

  • python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Author: Hero Liu # python读取剪切板内容 import win32clipboard as w import win32con def get_text(): w.OpenClipboard() d = w.GetClipboardData(win32con.CF_TEXT) w.C

  • python 实现ping测试延迟的两种方法

    一.python实现ping返回延迟繁琐版 #!/usr/bin/python3.7 # !coding:utf-8 __author__ = 'hsz' __date__ = 'Thu Feb 27 22:41:15 EST 2020' import time import struct import socket import select import sys def chesksum(data): """ 校验 """ n = len(d

  • 通过Python实现电脑定时关机的两种方法

    目录 导语 一.普通人关机 二.程序员关机 1)Pyqt5界面化小程序 ​2)Tkinter界面化小程序 导语 无论家用电脑还是公司的电脑,定时开关机都是一个非常实用的功能,只是一般都不太受关注.定时关机不仅能延长电脑的使用寿命,还能节约超多的电费呢~哈哈哈哈​ 害~这不,周天休假一天,但是公司的电脑大部分的小伙伴儿就开了一天,有时候放长假的时候电脑一开就是几天.这不?隔壁的小姐姐已经被领导发现了,最后的最后这个事情就落到我手里了,开发一个能定时关机的源码项目供大家使用,并互相提醒每个人一定要下

随机推荐