矿堆识别(绿)
思路
1.要对颜色进行处理–了解颜色的聚类算法(无监督)
{
‘k-mean’:选定簇的数目;
‘mean-shift’:无须选定簇的数目;
}
簇的合并和分离(根据像素距离重组)—》不会······
2.如何做–>>HSV,颜色检测
3.优化–>>拼接,填洞
步骤:
1.均值漂移pyrMeanShiftFiltering彩色图像分割(色彩聚类平滑滤波 )
2.然后转为HSV模型,做直方图均衡化
3.进行颜色检测,得到目标颜色的二值图像
4.开操作-删除一些零零星星的噪点
5.再使用闭操作-连接一些连通域,也就是删除一些目标区域的白色的洞
第一步
pyrMeanShiftFiltering–meanShfit均值漂移算法
聚类算法解释和分析:
meanshift算法深入
注:这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域
第二步
颜色识别:
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.看一个聚类实现代码