Skip to content

HUST2016/HUST2016.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Image Analysis and Understanding

                   ----Color Detection and Recognition from 2D images     
                             指导老师: 杨欣     

1.description of the project

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.

2.Work schedule

第三周   


查看相关文献和建立网站

第四周

 小组讨论,查看相关文献确定研究思路以及每个组员的分工;
 进一步美化网页; 
 环境配置: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)原始图像、高斯滤波、图像二值化
image
对二值化后的图像进行形状检测,并计算出各个轮廓的质心
image
(2)识别各个形状的具体类型(三角形、长(正)方形、五边形、圆形),并标出
image
(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]#计算均值、之后进行欧氏距离比较即可

3.The outcome of the project


 完善上周工作(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

Reference

Releases

No releases published

Packages

No packages published