Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 物体颜色分类_Python_Opencv_Image Recognition - Fatal编程技术网

Python 物体颜色分类

Python 物体颜色分类,python,opencv,image-recognition,Python,Opencv,Image Recognition,我想制作一个程序,通过视频中衣服的颜色对人们的职业进行分类 例如,如果一个人穿着白色外套,那么他就是一名医生 如果他穿着蓝色衣服,那他就是警察 我曾尝试编写代码,将图像切割到上半部分,以便于颜色识别 image= image[:len(image)/2] 然后,我将图像更改为HSV,使其更加平滑。我根据颜色的范围来分析它 dst = cv2.bilateralFilter(image,9,75,75) # Conver the image from RGB to HSV hsv = cv2

我想制作一个程序,通过视频中衣服的颜色对人们的职业进行分类

例如,如果一个人穿着白色外套,那么他就是一名医生

如果他穿着蓝色衣服,那他就是警察

我曾尝试编写代码,将图像切割到上半部分,以便于颜色识别

image= image[:len(image)/2]
然后,我将图像更改为HSV,使其更加平滑。我根据颜色的范围来分析它

dst = cv2.bilateralFilter(image,9,75,75)
# Conver the image from RGB to HSV
hsv = cv2.cvtColor(dst, cv2.COLOR_BGR2HSV)
channels = split(hsv)
ratio = ((float)(count(channels)) / (float)(total_number_of_pixel))
然而,我发现比值非常小。我认为这是因为b背景噪声。


我正在寻找如何消除背景噪音的帮助。是否有更合适的方法对职业进行分类?

为什么不先进行边缘检测,然后根据您的标准取出图像的相关部分。谢谢您的回复。边缘检测与特征匹配相似吗?我曾尝试在opencv中使用特征匹配,但它无法识别。我的程序是从cam中识别人,因此我无法从图像中提取“相关部分”,因为它非常小。这两个部分不同,但从外行的角度来看,基本上可以使用边缘检测和特征匹配的组合。我并不是这方面的专家,但实际上你可以使用边缘检测过滤器获得边缘,然后使用特征匹配过滤掉“人类”。一旦人类离开,你可以在整个图像的中点应用一个简单的过滤器来检测颜色。。这听起来像个主意吗?是的,听起来不错。这是职业分类的唯一方法吗?如果我们只考虑图像的中点,就会有一个巨大的MIS分类,你实际上可以准备一个像4x4这样的过滤器,并将它映射到上半部以获得正确的分类;这仍然不是很完美的方式,但它会给你一个开始