使用python的pillow模块可以将图片转化为灰度图,
可以获取灰度图的特定点值,区域值,
修改值并保存到图片
图片转换为灰度图
from PIL import Image# 打开图片
image = Image.open("d://python//2//1.jpg")gray_image = image.convert("L") #转换为灰度图
gray_image.save("d://python//2//6.jpg")
获取特定坐标的灰度值
x, y = 10, 20 # 示例坐标
pixel_value = gray_image.getpixel((x, y)) #灰度值,0-255
print(pixel_value)
特定区域的灰度值1
width,height = gray_image.sizepixel_values=[]
for y in range(height):pixel_values_y=[]for x in range(width):pixel_value = gray_image.getpixel((x,y))pixel_values_y.append(pixel_value)pixel_values.append(pixel_values_y)print(pixel_values)
图片灰度值总和
gray_values = list(gray_image.getdata())
sum_of_values = sum(gray_values)
print(sum_of_values)
特定区域的灰度值总和
x1=10
y1=10
x2=50
y2=50# 确保坐标正确,避免越界错误
x1, y1 = max(0, x1), max(0, y1)
x2, y2 = min(image.width - 1, x2), min(image.height - 1, y2)# 裁剪图像以获取指定区域
region = gray_image.crop((x1, y1, x2 + 1, y2 + 1)) # 注意crop的参数是左、上、右、下,因此x2和y2需要加1以包含边界点
gray_values = list(region.getdata())
sum_of_values = sum(gray_values)
print(sum_of_values)
调整特定坐标的灰度值并保存图片
import numpy as np
pixels = np.array(gray_image) # 将图像转换为NumPy数组# 调整灰度值(例如,乘以一个因子)
factor = 1.5 # 例如,增加亮度到1.5倍
pixels = np.clip(pixels * factor, 0, 255).astype(np.uint8) # (对np数组的操作,最小值,最大值),确保值在0-255之间,并转换回uint8类型# 将NumPy数组转换回图像并显示或保存
adjusted_image = Image.fromarray(pixels)
adjusted_image.save("d://python//2//adjusted_image.jpg")