Python PIL 图片像素提取和统计 - 提取指定颜色像素并计数
Python PIL 图片像素提取和统计 - 提取指定颜色像素并计数
该代码使用 Python PIL 库从图像中提取特定颜色像素,并统计每个图像中特定颜色像素的数量。
步骤:
- 导入库: 导入
os和PIL库。 - 设置路径: 设置输入和输出文件夹路径。
- 定义像素值: 定义要提取的像素值 (RGB 格式)。
- 循环遍历图片: 遍历输入文件夹中的所有 PNG 图片。
- 打开图片: 打开图片并将其转换为 RGB 模式。
- 获取像素值: 获取图片的像素值。
- 提取指定像素: 提取指定颜色像素。
- 保存像素值: 将提取的像素值保存到输出文件夹中的文本文件中。
- 统计计数: 统计提取到的特定颜色像素数量。
- 保存计数: 将计数结果保存到单独的文本文件中。
代码示例:
import os
from PIL import Image
# 输入文件夹和输出文件夹的路径
input_folder = r'C:\Users\jh\Desktop\data\images_block'
output_folder = r'C:\Users\jh\Desktop\data\images_flatten'
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 定义要提取的像素值
pixels_to_extract = [(180, 0, 0), (232, 14, 14), (255, 208, 69), (79, 210, 125)]
# 循环遍历输入文件夹中的所有PNG图片
for filename in os.listdir(input_folder):
if filename.endswith('.png'):
input_path = os.path.join(input_folder, filename)
# 打开PNG图片并将其转换为RGB模式
image = Image.open(input_path).convert('RGB')
# 获取图片的像素值
pixels = list(image.getdata())
# 提取指定的像素值
extracted_pixels = [pixel for pixel in pixels if pixel in pixels_to_extract]
# 将像素值保存到输出文件夹中的文本文件中
output_path = os.path.join(output_folder, filename.replace('.png', '.txt'))
with open(output_path, 'w') as file:
for pixel in extracted_pixels:
file.write(f'{pixel[0]}, {pixel[1]}, {pixel[2]}
')
# 统计指定像素值的个数并保存
count = len(extracted_pixels)
count_output_path = os.path.join(output_folder, filename.replace('.png', '_count.txt'))
with open(count_output_path, 'w') as count_file:
count_file.write(f'Count: {count}')
print('转换完成')
使用方法:
- 将代码中的
input_folder和output_folder路径替换为你的实际路径。 - 将
pixels_to_extract列表中的 RGB 值替换为你要提取的像素值。 - 运行代码,代码将提取指定颜色像素并保存到文本文件,并统计每个图像中特定颜色像素的数量。
注意:
- 代码示例中提取了四种特定颜色的像素,你可以根据需要修改
pixels_to_extract列表。 - 代码假设输入文件夹中只有 PNG 图片。
- 输出文件夹会被自动创建,如果存在会覆盖原有文件。
更多内容:
- 了解
PIL库的更多功能,可以访问 https://pillow.readthedocs.io/。 - 了解更多关于图像处理的 Python 库,可以访问 https://www.python.org/。
原文地址: https://www.cveoy.top/t/topic/b1Z5 著作权归作者所有。请勿转载和采集!