一:背景颜色识别,此代码只对整体背景进行识别,无法识别某种图案上的颜色
/// <summary>
/// 图案颜色集合(RGB)
/// </summary>
private List<int> _colorVec = new List<int>();
/// <summary>
/// Mat格式存放处理的图片
/// </summary>
private Mat _dstMat;
//R
_colorVec.Add((int)_dstMat.get(0, 0)[0]);
//G
_colorVec.Add((int)_dstMat.get(0, 1)[1]);
//B
_colorVec.Add((int)_dstMat.get(0, 2)[2]);
二:特定位置点颜色识别,可识别相机中某一点的颜色
//像素位置点
public Point _point;
double _b = dst.get((int)_point.y, (int)_point.x)[0];
double _g = dst.get((int)_point.y, (int)_point.x)[1];
double _r = dst.get((int)_point.y, (int)_point.x)[2];
double _a = dst.get((int)_point.y, (int)_point.x)[3];
Color = new Color((float)_r / 255, (float)_g / 255, (float)_b / 255, (float)_a / 255);
三:特定形状进行识别,对MultiObjectTrackingBasedOnColorExample.cs脚本进行修改——在对颜色识别完成之后,进行形状识别,图像识别见上一篇文章OpenCV For Unity (一)——识别图案形状,筛选出自己要识别的物体,脚本中的常量MIN_OBJECT_AREA可对要识别的面积进行限定,小于这个尺寸的物体不进行识别
其他小借:摄像头转Mat
_dstMat = new Mat(_webCamTexture.height, _webCamTexture.width, CvType.CV_8UC4);
Utils.webCamTextureToMat(_webCamTexture, _dstMat);
OpenCV开发文档:OpenCV 教程
本文档介绍了如何使用OpenCV进行颜色识别,包括整体背景颜色的获取和特定位置点颜色的读取,并展示了如何结合颜色识别进行形状识别,通过调整MIN_OBJECT_AREA参数筛选识别目标。同时提供了将摄像头图像转换为Mat对象的方法。
3万+





