opencv对图像的颜色识别问题,要用python2实现

提出这个要求的人智商有点低,我对python也不是很熟,具体要求如下:识别下图中各种颜色的比例。(真是具体)我一开始做个三个直方图,结果他非要类似”紫色占?%“这种输出。... 提出这个要求的人智商有点低,我对python也不是很熟,具体要求如下:
识别下图中各种颜色的比例。(真是具体)

我一开始做个三个直方图,结果他非要类似”紫色占?%“这种输出。一点思路都没有。
比如,上图中不同的紫色,都是存在3个r,g,b矩阵里的,我要怎么合在一起然后聚类定义他们为一个颜色啊?(有可能我的思路不对,请指教)
最好能有具体的代码实现,没有的话讲点思路和具体的opencv里能用的函数也行!顺便想拜个师傅!!!
可能是我的问题描述不对,上图只是一个具体例子。程序的要求是自动对图片的颜色进行分类最后输出各大类的百分比。
opencv里有自动对颜色进行分类的函数吗?
展开
 我来答
百度网友3b14b43
推荐于2017-09-17 · TA获得超过178个赞
知道答主
回答量:98
采纳率:0%
帮助的人:50.9万
展开全部

我没用过Python的Opencv的库,只是用过Python的Image的库;Image库已经可以结果这个问题了

我试着做一下:你先得安装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通道上
vase33112245
2014-05-26 · TA获得超过644个赞
知道小有建树答主
回答量:725
采纳率:0%
帮助的人:490万
展开全部
对你说的"紫色"求和就好了
追问
完全不明白你在说什么,请看补充,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式