162
社区成员
发帖
与我相关
我的任务
分享Numpy 和 Pillow在图像处理中的应用
1) 掌握Numpy的基本应用
2)掌握 Pillow的简单用法
任务 1)从以下网站:南通大学[学校掠影](https://www.ntu.edu.cn/77/list.htm)任选一副图片下载,用Python程序显示原始图片。
任务 2)将图片变成黑白图片,并用Python程序显示。
任务3)将图片左右翻转,并用Python程序显示。
任务4)将图片上下翻转,并用Python程序显示。
任务5)自己设想一种图片处理任务,描述清楚,并给出实现代码和程序显示图片结果。
任务 1)用Python程序显示原始图片。
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 显示图像
img.show()

任务 2)将图片变成黑白图片,并用Python程序显示。
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 将图像转换为黑白
img = img.convert("L")
# 显示图像
img.show()
img.save("bw_python.jpg")

任务3)将图片左右翻转,并用Python程序显示。
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 水平翻转图像
img = img.transpose(Image.FLIP_LEFT_RIGHT)
# 显示图像
img.show()
img.save("flipped_python.jpg")

任务4)将图片上下翻转,并用Python程序显示。
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 垂直翻转图像
img = img.transpose(Image.FLIP_TOP_BOTTOM)
# 显示图像
img.show()
img.save("flipped_python.jpg")

任务5)计算图片的平均像素值并使得像素值*2
平均值
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 获取图像大小
width, height = img.size
# 计算每个像素的平均值
total = 0
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
total += (r + g + b) / 3
avg_pixel_value = total / (width * height)
print("平均像素值为:", avg_pixel_value)

像素*2
from PIL import Image
# 加载图像
img = Image.open("python.jpg")
# 获取图像大小
width, height = img.size
# 将每个像素的值乘以2
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
img.putpixel((x, y), (r*2, g*2, b*2))
# 显示图像
img.show()
img.save("doubled_python.jpg")
