用Python写以下程序:设计一个表示图像上像素的像素类,具有r、g、b三个数据成员,他们的取值范围为0~255;gray方法用于返回灰度值,转换公式为:r*0.299 +g*0.587 +b*0.114;disp方法用于输出像素的基本信息(包括灰度值);还有构造函数。编写主程序测试所定义的类。要求:随机产生5个像素的数据
时间: 2024-03-23 11:41:36 浏览: 115
我用Python写的一些算法
5星 · 资源好评率100%
以下是代码实现:
```python
import random
class Pixel:
def __init__(self, r, g, b):
self.r = r
self.g = g
self.b = b
def gray(self):
return int(self.r * 0.299 + self.g * 0.587 + self.b * 0.114)
def disp(self):
print('R: {}, G: {}, B: {}, Gray: {}'.format(self.r, self.g, self.b, self.gray()))
# 随机生成5个像素数据,并输出其基本信息
for i in range(5):
r, g, b = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
pixel = Pixel(r, g, b)
pixel.disp()
```
代码说明:
1. 定义Pixel类,包含构造函数、gray方法和disp方法。
2. 构造函数接受三个参数,分别表示像素的r、g、b值。
3. gray方法根据转换公式计算像素的灰度值,返回一个整数。
4. disp方法输出像素的基本信息,包括r、g、b值和灰度值,使用字符串格式化输出。
5. 在主程序中随机生成5个像素数据,分别创建Pixel对象并调用disp方法输出其基本信息。
阅读全文