Excel如下
目标
代码(改下两个地址就可以)
import pandas as pd
import colorspacious
import colorsys
# 读取Excel文件
df = pd.read_excel('未分类output.xlsx')
# 定义RGB到LAB和HSV的转换函数
def rgb_to_lab(rgb):
lab = colorspacious.cspace_convert(rgb, "sRGB255", "CIELab")
return lab
def rgb_to_hsv(rgb):
hsv = colorsys.rgb_to_hsv(rgb[0] / 255.0, rgb[1] / 255.0, rgb[2] / 255.0)
return hsv
# 应用转换函数到DataFrame中的RGB列
df['LAB'] = df.apply(lambda row: rgb_to_lab([row['Average R'], row['Average G'], row['Average B']]), axis=1)
df['HSV'] = df.apply(lambda row: rgb_to_hsv([row['Average R'], row['Average G'], row['Average B']]), axis=1)
# 将LAB和HSV的结果拆分成两列
df[['LAB L', 'LAB A', 'LAB B']] = pd.DataFrame(df['LAB'].tolist(), index=df.index)
df[['HSV H', 'HSV S', 'HSV V']] = pd.DataFrame(df['HSV'].tolist(), index=df.index)
# 删除中间结果的列
df.drop(['LAB', 'HSV'], axis=1, inplace=True)
# 将结果写入Excel文件
df.to_excel('未分类-rgb-hsv-lab.xlsx', index=False)
刚开始用的Excel自带的VBA,不如Python一点哈哈。
检验网站: