范围和垫子错误

inRange and Mat error

本文关键字:错误 范围      更新时间:2023-10-16

我正在使用OpenCVwith Eclipse。

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

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

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);
            }
        }

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

有人知道我如何访问这个矩阵吗?有没有其他方法可以实现我的目标?也许我使问题复杂化。

谢谢你的时间。

inRange之类的无关,只是您的Mat访问代码被破坏了。

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