----Color Detection and Recognition from 2D images
指导老师: 杨欣
The goal of color detection and recognition is, given an image including several colored objects, to detect object which has the same color as the colored objects in a database (the shape of the query object in an image can be different from those in the database) and if yes label the color on the object.
查看相关文献和建立网站
小组讨论,查看相关文献确定研究思路以及每个组员的分工;
进一步美化网页;
环境配置:python 2.7.9、opencv2.4.13、Numpy1.12.1等相关库包
IDE :JetBrains PyCharm Community Edition
注意事项:建议使用python2.7版本(python3.0可能出现与相关包不兼容)
同时建议安装Anaconda2,里面包含了大多数的python库包,可方便使用
项目流程:
![image](https://raw.githubusercontent.com/HUST2016/HUST2016.github.io/master/images/1.png)
### 第五周
编程实现,部分相关程序代码:
M = cv2.moments(c) #轮廓c的 矩, 计算中心距(中心距可由原点矩(几何矩)计算)#print('M["m00"]: ',M["m00#轮廓的 矩"])
if (M["m00"] == 0):
M["m00"]=1
cX = int((M["m10"] / M["m00"]) * ratio)#M["m10"] / M["m00"] 表示x坐标(列)
cY = int((M["m01"] / M["m00"]) * ratio)#"m10","m01"表示x、y方向的一阶原点矩(由原点矩可计算中心距)
#print('cX:', cX, 'cY: ', cY)#print(image[cY, cX])
#detect the shape of the contour and label the color
shape = sd.detect(c)#自定义的形状检测函数
color = cl.label(lab, c)#自定义的颜色检测函数
#根据轮廓的坐标值进行画出轮廓
c = c.astype("float")
c *= ratio
c = c.astype("int")
text = "{} {}".format(color, shape)
cv2.drawContours(image, [c], -1, (0, 255, 0), 2)
cv2.putText(image, text, (cX, cY),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)
#show the output image
cv2.imshow("Image", image)
cv2.waitKey(700)
项目各个部分展示:
(1)原始图像、高斯滤波、图像二值化
对二值化后的图像进行形状检测,并计算出各个轮廓的质心
(2)识别各个形状的具体类型(三角形、长(正)方形、五边形、圆形),并标出
(3)识别各个形状的颜色
对于每一个形状区域,构建图像掩模,经过腐蚀操作后(为了使形状更精准),计算形状区域在Lab空间的均值,之后,再与数据库中的颜色进行欧氏距离运算,找出距 离最小的,视为形状所属的颜色。
相关代码:
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.drawContours(mask, [c], -1, 255, -1)#构建图像掩膜
mask = cv2.erode(mask, None, iterations=2)#进行腐蚀操作
mean = cv2.mean(image, mask=mask)[:3]#计算均值、之后进行欧氏距离比较即可
完善上周工作(1)、(2)、(3),在每个形状的质心处输出 “ 形状+颜色 ” 的信息标注 ![image](https://raw.githubusercontent.com/HUST2016/HUST2016.github.io/master/images/5.gif)
## Group Members
NAME | Student ID |
---|---|
张蓥 | M201671 |
朱冉 | M201671 |
艾维 | M201671795 |
陈怡 | M201671 |
于胜举 | M201671793 |