【问题标题】:inRange and Mat errorinRange 和 Mat 错误
【发布时间】:2014-03-04 15:42:24
【问题描述】:

我正在使用带有 Eclipse 的 OpenCV。

我需要检测人的皮肤,所以我将图像转换为 HSV,并使用 inRange 函数来获取带有白色皮肤图像的 Mat。

问题是现在,我需要检测哪些组件是白色来修改原始帧中的这些像素(我正在用摄像机改变肤色),但我无法访问返回的 Mat范围内

cvtColor(frame,frame,CV_BGR2HSV);
        Mat n;
        inRange(frame, Scalar(0, 10, 60), Scalar(20, 150, 255), n);


        for(int i=0;i<frame.rows;i++)
        {
            for(int j=0;j<frame.cols;j++)
            {

                n.at(&i);
                            //n(i,j);

            }
        }

那是有问题的代码。当我进入内部循环时,构建失败,给出了很多引用模板的错误。

有谁知道我怎样才能访问这个矩阵?还有其他方法可以实现我的目标吗?也许我让问题复杂化了。

感谢您的宝贵时间。

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    与 inRange 等无关,只是您的 Mat 访问代码已损坏。

    Vec3b & hsvPixel = n.at<Vec3b>(i,j);
    // hsvPixel[0] = h;    
    // hsvPixel[1] = s;
    // hsvPixel[2] = v;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-09
      • 2016-10-31
      • 1970-01-01
      • 2020-09-05
      • 2018-07-29
      相关资源
      最近更新 更多