一:背景颜色识别,此代码只对整体背景进行识别,无法识别某种图案上的颜色
/// <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 教程