第二周作业

矿堆识别(绿)

思路

1.要对颜色进行处理–了解颜色的聚类算法(无监督)
{
‘k-mean’:选定簇的数目;
‘mean-shift’:无须选定簇的数目;
}
簇的合并和分离(根据像素距离重组)—》不会······

2.如何做–>>HSV,颜色检测

3.优化–>>拼接,填洞

步骤:

1.均值漂移pyrMeanShiftFiltering彩色图像分割(色彩聚类平滑滤波 )

2.然后转为HSV模型,做直方图均衡化

3.进行颜色检测,得到目标颜色的二值图像

4.开操作-删除一些零零星星的噪点

5.再使用闭操作-连接一些连通域,也就是删除一些目标区域的白色的洞


第一步

pyrMeanShiftFiltering–meanShfit均值漂移算法

聚类算法解释和分析:

https://blog.csdn.net/dcrmg/article/details/52705087

meanshift算法深入

https://blog.csdn.net/qq_23968185/article/details/51804574

注:这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域


第二步

颜色识别:

1.RGB转HSV
cvtColor(imgOriginal, imgHSV, COLOR_BGR2HSV);

2.直方图均衡化

split(imgHSV, hsvSplit);

equalizeHist(hsvSplit[2],hsvSplit[2]);

merge(hsvSplit,imgHSV);

3.颜色检测

void inRange(InputArray src, InputArray lowerb, InputArray upperb,
OutputArray dst);

4.存为二值图

优化

对二值图像进行开操作,删除一些零零星星的噪点,

Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));

morphologyEx(imgThresholded, imgThresholded, MORPH_OPEN, element);

再使用闭操作,连接一些连通域,也就是删除一些目标区域的白色的洞。

morphologyEx(imgThresholded, imgThresholded, MORPH_CLOSE, element);

待改进:

1.簇的合并分离

2.优化的进步

3.利用pyrMeanShiftFiltering来优化道路

源码:http://blog.sina.com.cn/s/blog_63913ba601013336.html

https://blog.csdn.net/Dinosoft/article/details/78877917

都没看懂···

4.开,闭操作研究

5.看一个聚类实现代码

https://blog.csdn.net/yangtrees/article/details/7386723