Python-OpenCVでグレースケール画像の色ごとの画素数をカウント

python コンピュータ
python

スクリプト

import cv2
import numpy as np

# 
# グレースケール画像の色ごとの画素数をカウント
# 

infile = 'H:/py/old/20210215/jpeg/00190.jpeg'
img = cv2.imread(infile)

if len(img.shape) > 2:
    # 多分カラーなのでグレースケールへ変換
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

color_list = np.zeros(256)
for i in range(len(color_list)):
    color_list[i] = np.count_nonzero(img == i)

# 最大値
maxvalue = np.max(color_list)
maxindex = np.where(color_list == maxvalue)[0][0]
print("index:{0} value:{1}".format(maxindex, maxvalue))

結果

index:255 value:1120529.0

テストした画像は白色が多い画像でした。

コメント