背景说明:基于python进行图片识别,通过图片的设计预测用户的行为。首先需要两种数据:1、用户行为数据,来源于消费者/用户的点击率、注视时间、下载率等数据;2、客观数据,图片的RGB值/HSV值。由于数据的限制,本文仅分析如何使用自动识别客观数据,即图片的主色调这一部分。
方案选择:
方案一:python+k-means聚类分析
python采用Delta E equations和colormath包来计算图片颜色和基础颜色之间的视觉差异程度。
方案二、python识别主色调+神经网络模型
import os
n=range(1,100)
for filename in os.listdir(r"C:\Users\***\Desktop\media"):
if filename.endswith('png'):
if filename.endswith(n):
doc=open("text.txt","w")
from haishoku.haishoku import Haishoku
png==filename.endswith('png')
dominant = Haishoku.getDominant(png)
print (dominant)
print(dominant,file=doc)
doc.close()
RGB转HSV
import os
for filename in os.listdir(r"C:\Users\谭泽宇\Desktop\haishoku-master"):
doc=open("text.txt",'a')
if filename.endswith('png'):
print (filename)
from haishoku.haishoku import Haishoku
png=filename
dominant = Haishoku.getDominant(png)
print (dominant)
print(png,dominant,file=doc)
doc.close()
r,g,b=dominant
print(r,g,b)
r, g, b = r/255.0, g/255.0, b/255.0
mx = max(r, g, b)
mn = min(r, g, b)
df = mx-mn
if mx == mn:
h = 0
elif mx == r:
h = (60 * ((g-b)/df) + 360) % 360
elif mx == g:
h = (60 * ((b-r)/df) + 120) % 360
elif mx == b:
h = (60 * ((r-g)/df) + 240) % 360
if mx == 0:
s = 0
else:
s = df/mx
v = mx
print(h,s,v)
领取专属 10元无门槛券
私享最新 技术干货