python 统计相同像素值个数

时间:2025-01-24 07:03:16

目录

python 统计相同像素值个数

最大值附近的值


python 统计相同像素值个数



import cv2
import numpy as np
import time
from collections import Counter

# 读取图像
image = cv2.imread('mask16.jpg')


# 将图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

area=gray_image.shape[0]*gray_image.shape[1]
print('shape',gray_image.shape)
# 将灰度图像展平为一维数组
pixels = gray_image.flatten()

start=time.time()
# 使用 Counter 统计每个像素值的出现次数
pixel_counts = Counter(pixels)

most_commons = pixel_counts.most_common(10)

print('time',time.time()-start)
count=0
for most_common in most_commons:
    count+=most_common[1]
    print(most_common,count,count/len(pixels))
print(count,count/len(pixels))
# 打印每个像素值及其出现次数
# for pixel_value, count in pixel_counts.items():
#     print(f"Pixel value {pixel_value}: {count} times")

最大值附近的值



import cv2
import numpy as np
import time
from collections import Counter

# 读取图像
image = cv2.imread('mask16.jpg')


# 将图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

area=gray_image.shape[0]*gray_image.shape[1]
print('shape',gray_image.shape)
# 将灰度图像展平为一维数组
pixels = gray_image.flatten()

start=time.time()
# 使用 Counter 统计每个像素值的出现次数
pixel_counts = Counter(pixels)

most_commons = pixel_counts.most_common(10)

print('time',time.time()-start)
count=0
max_pixel=int(most_commons[0][0])
for ii, most_common in enumerate(most_commons):
    if abs(max_pixel- int(most_common[0]))<5:
        count+=most_common[1]
        print(most_common,count,count/len(pixels))
    else:
        print('ffffff',most_common[0])
print(count,count/len(pixels))

相关文章