使用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")