import cv2
import numpy as np
import os
import pandas as pd
from PIL import Image
# """
# 单张图像偏色检测
# input:array = 图像(numpy数组),size = (x,y)压缩后的图像大小
# """
def value_counts(list_a):
a = pd.DataFrame(list_a)
result = a.apply(pd.value_counts, normalize=True)
return result.values
#
# 读取图片
arra = Image.open('D:\\tianyi-zdh\yuncun\Screenshot\\1.jpg')
rgb_arra = arra.convert('RGB')#转换为rgb
Quantitative_interval_number = 5 # 量化区间数量
H_list = [] # 色度值list
value = 0.6 # 判断阈值
arra = np.array(arra, dtype=float)
image = cv2.resize(arra, (64, 64))#修改尺寸
image.dtype#查看格式
image = image.astype(np.float32)#float64转32
img_hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV) #图片格式需为float32
array_H = img_hsv[:, :, 0]
for i_1 in range(len(array_H)):
for j in range(len(array_H[0])):
H_list.append(array_H[i_1][j] // (180 / Quantitative_interval_number))
value_max = value_counts(H_list)
print(value_max[0])
if value_max[0] >= value:
print("偏色")
else:
print('no')
根据自身标准调整偏色阈值来判断是否偏色