展开全部
我没用过Python的Opencv的库2113,只是用过Python的Image的库;5261Image库已经可以结果这个问题了4102
我试着做一下:你先得1653安装PIL库
得到rgb三个通道,然后转到HSV通道,其中H表示0-255的颜色,V表示强度,你大概先知道紫色的范围是多少from PIL import Image
import colorsys
def CalculateH(img):
if len(img.getbands()) == 4:
ir,ig,ib,ia = img.split()
else:
ir, ig, ib = img.split()
Hdat = []
Sdat = []
Vdat = []
for rd,gn,bl in zip(ir.getdata(),ig.getdata(),ib.getdata()):
h,l,s = colorsys.rgb_to_hsv(rd/255.,gn/255.,bl/255.)
Hdat.append(h)
Sdat.append(l)
Vdat.append(s)
meanV = mean(Vdat)
return Hdat, meanV
def myreadim(filename):
im = Image.open(filename)
H,V = CalculateH(im)
后面我就懒得写了,应该思路都清楚了吧,要转到其他的颜色通道上,不要在rgb通道上