python灰度图

article/2025/8/30 1:25:44

任务描述
背景

  真彩色图像和灰度图像是数字图像的两种常见类型,如下图所示,左图是真彩色图像,右图是灰度图像。
  在这里插入图片描述
在真彩色图像中,像素颜色是 RGB 颜色,每个颜色包含 R、G、B 三个颜色分量。而在灰度图像中,像素颜色只有一个分量,称为灰度值,其取值是 [0,255] 之间的整数,灰度值越小,灰度越暗(越黑),反之越亮(越白)。
在这里插入图片描述
在这里插入图片描述
任务
  本关任务是补全程序,使程序能将一幅真彩色图像转换成灰度图像。说明如下:
  1)求得的灰度值需要转换成整数,请使用round函数取整,如round(3.7)是将3.7四舍五入为整数4;
  2)本关程序框架与上关基本相同。
相关知识
思路

  真彩色图像与灰度图像采用的颜色模式不一样,前者使用 RGB 颜色,有三个颜色分量,而后者使用灰度值,只有一个颜色分量,所以不能像上关一样直接对原始图像的像素进行修改。
  解决方法是先新建一个与真彩色图像分辨率相同的纯色灰度图像,然后依次取出真彩色图像中每个像素的 RGB 颜色,算出对应的灰度值,再将此灰度值填入新建灰度图像的对应位置。

示例程序
  示例程序见下:

from PIL import Image
img = Image.new('L', (100, 100))  #新建一个3×3的纯黑色灰度图像
gray = img.getpixel((50,50))      #取出某个像素的颜色,即灰度值
print('这是一个灰度值:', gray)   #灰度值只包含一个整数
for x in range(100):for y in range(100):img.putpixel((x,y), 100)#将所有像素的灰度值设置为100
img.save('src/step2/student/step2_2.jpg')

可将此程序拷入右侧编辑器运行。

编程要求
  在 Begin-End 区间补全代码,具体要求见上。

测试说明
  系统会检查程序生成的 step2_2.jpg 文件,若正确则打印:

你的图像与正确答案相同!

开始你的任务吧,祝你成功!

from PIL import Image# 将一个RGB颜色转换成灰度值,结果保留整数
def RGBtoGray(r, g, b):########## Begin ##########gray = round(r*0.299 + g*0.587 + b*0.114)########## End ##########return gray
# 将真彩色图像转换成灰度图
# 真彩色和灰度图的文件路径分别为path1和path2
def toGrayImage(path1, path2):img1 = Image.open(path1)  # 真彩色图像,像素中是RGB颜色w, h = img1.sizeimg2 = Image.new('L', (w, h))  # 新建一个灰度图像,像素中是灰度值########## Begin ########### 此部分功能:依次取出img1中每个像素的RGB颜色,转换成灰度值,再放到img2的对应位置for x in range(w):for y in range(h):r, g, b = img1.getpixel((x, y))  # 取出颜色gray = RGBtoGray(r, g, b) # 转成灰度值img2.putpixel((x, y), gray)  # 放回像素########## End ##########img2.save(path2)path1 = 'step1.jpg'  # 真彩色图像
path2 = 'step2_2.jpg'  # 灰度图像
toGrayImage(path1, path2)

在这里插入图片描述


http://chatgpt.dhexx.cn/article/fwp7SaB3.shtml

相关文章

图像处理--灰度图

灰度图 灰度图,Gray Scale Image 或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。 灰度图定义 什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点…

OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)

目录 一、彩色图灰度化 1、主要函数cvtColor()介绍 2、代码 3、效果 二、通道分离 1、向量介绍 2、总代码 3、效果 三、单通道(灰度图)反差处理 1、单通道向量访问 2、代码 3、效果 四、多通道(彩色图)反差处理(彩色图的反差处理) 1、多…

灰度图与RGB图

1.灰度图 灰度图就是单通道图像,而单通道图是指维度数为2的图像。 而灰度就是没有色彩,RGB色彩分量全部相等(可将这点与下文的RGB图进行对比)。那么灰度图的每个像素点就只有一个值表示颜色,像素值的范围就是[0~255]。…

ER图、ERD图

ER图、ERD图 1. 什么是ERD1.1 举例 2. ERD符号指南2.1 实体2.2 属性2.3 主键2.4 外键2.4 关系2.5 基数2.5.1 一对一的基数的例子2.5.2 一对多的基数的例子2.5.3 多对多的基数的例子 3.概念、逻辑和物理数据模型3.1 概念数据模型3.2 逻辑数据模型3.3 物理数据模型 4.如何绘制ER图…

2.2.2 ER图

2.2.2 ER图 关系型数据库提供了SQL语言,使应用程序开发人员与数据库管理和维护人员能够与数据库进行交互。但是在创建数据库和数据表之前,需要对数据库中的数据表进行设计,并能够正确设计出各数据表之间的关联关系。 通常使用ER图&#xf…

【系统架构】ER图的画图规范和优化点

文章目录 什么是ER图ER图的画图规范组成部分步骤注意 实例 第三弹,讲讲ER图的画图规范以及优化点 什么是ER图 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型 ER图…

学好er图

一、什么是er图? ​ 1、 实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。 通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型…

ER图学习笔记(附各个图型的举例,实战案例)

ER图常用图形如下: ER图图形含义详解 实体(长方体): 实体字面意思就是实际存在的,例如商品,货物,用户。 属性(椭圆): 属性我们不陌生,就是一个…

enterprise architect绘画ER图

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance…

数据库ER图

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance…

java er图_ER图与UML图

ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型 构成E-R图的基本要素是实体、属性和联系,其表示…

ER图符号含义

ER图在数据库设计中经常用到,用于表示数据库各个表之间的关系。 设计的时候,我个人用到的主要是下图中的两个: Many:一对多 一个数据源对应多个数据库表 One:一对一 一个度量对应一个display设置,一对一…

ER图

文章转载自「开发者圆桌」 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并…

如何画数据库ER图

一、ER图基本概念 ER图分为实体、属性、关系三个核心部分。在ER图中,实体是长方形,属性是椭圆形,关系为菱形。 1、实体(entity) 即数据模型中的数据对象(即数据表),用长方体来表示&…

ER图详解及实例

文章目录 ER图基本概念ER图实例 ER图基本概念 ER图分为实体、属性、关系三个核心部分。在ER图中,实体是长方形,属性是椭圆形,关系为菱形。 实体(entity): 即数据模型中的数据对象(即数据表&…

什么是E-R图

E-R图,也称为实体关系图,用于显示实体集之间的关系。它提供了一种表示实体类型、属性和连接的方法;用来描述现实世界的概念模型。ER模型是数据库的设计或蓝图,将来可以作为数据库来实现。 在E-R图中,实体集是一组相似的…

绘制ER图

文章目录 前言一、ER图绘图规范二、使用步骤例如一个学生管理系统 前言 概念 ER图:实体关系图,简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式 一、ER图绘图规范 实体用矩形表…

数据库设计 ER图

一、ER图简介 ER图,简单来说,E是实体,实体有一组属性;R是关系。找到系统中的实体以及实体关系就可以绘制出ER图了。 例如,下图是网上找到的ER图,矩形的是实体,椭圆是属性,实体和实体…

视频录制软件哪个好

我们经常需要录制视频,那么有什么比较好用的视频录制软件呢?其实好用的软件有很多,下面小编就给大家介绍一个名为迅捷屏幕录像工具的软件,并教大家如何使用它录制视频,以下便是具体的操作步骤,希望对大家能…

如何录制游戏视频中的音频

随着软件行业的迅速发展,它给人们的生活带来了许多的便捷,现在很多人在录制一段音频的时候就会需要使用工具来完成,相比之前大家用手机录制来比,这种工具真的为我们解决了很多的烦恼,当我们需要录制电脑中视频音频的时…