OpenCV For Unity(二)——颜色识别(多种方式)

本文档介绍了如何使用OpenCV进行颜色识别,包括整体背景颜色的获取和特定位置点颜色的读取,并展示了如何结合颜色识别进行形状识别,通过调整MIN_OBJECT_AREA参数筛选识别目标。同时提供了将摄像头图像转换为Mat对象的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:背景颜色识别,此代码只对整体背景进行识别,无法识别某种图案上的颜色

        /// <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 教程

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值