import os
from collections import Counter
import numpy as np
from PIL import Image
# 用PIL中自带的getpixel,得到单张图像的P模式index
def getpixel_count(path):
if isinstance(path, str):
image = Image.open(path)
else:
image = path
print(image.mode) # P
arr = []
for w in range(image.size[0]):
for h in range(image.size[1]):
p = image.getpixel((w, h))
if p not in arr:
arr.append(p)
print(arr)
# 统计调色板情况
palette = image.getpalette() # 获取调色板
count = Counter(np.array(image).flatten())
print(count)
return arr, count
# 用PIL中自带的getpixel,得到某个文件夹所有图像的P模式index
def getpixel_count_dir(mask_dir):
arr = []
for file in os.listdir(mask_dir):
path = os.path.join(mask_dir, file)
image = Image.open(path)
print(image.mode) # P
for w in range(image.size[0]):
for h in range(image.size[1]):
p = image.getpixel((w, h))
if p not in arr:
arr.append(p)
# 统计调色板情况
palette = image.getpalette() # 获取调色板
count = Counter(np.array(image).flatten())
# print(count)
print(arr)
return arr
if __name__ == '__main__':
image_path = r'E:\A_new_segdet\yolov5ds-main\paper_data\seg\labels\train\tunnelgrout_785.png'
getpixel_count(image_path)
image = Image.open(image_path)
image_crop = image.crop((400, 0, image.size[0], 300))
getpixel_count(image_crop)
#
# image_crop2 = image.crop((0, 300, 300, image.size[1] - 1))
# getpixel_count(image_crop2)
【脚本】get_pixel(用PIL中自带的getpixel,得到单张图像或者某个文件夹中所有图像的P模式index)
最新推荐文章于 2022-10-26 19:12:10 发布