android OpenCv:如何使用floodfill函数查找连接组件

时间:2014-04-16 10:41:42

标签: java android opencv

我正在使用floodfill函数在opencv for android中找到图像中的连接组件。

Vector<Vector<Point>> blobReturn = null;
Mat labelImag = new Mat(dilatedImag.rows(),dilatedImag.cols(),CvType.CV_32FC1);
dilatedImag.convertTo(labelImag ,CvType.CV_32FC1);
int val = 2;
Scalar labelCount = new Scalar(val);
Mat mask = new Mat(labelImag.rows()+2, labelImag.cols()+2, CvType.CV_8UC1, new Scalar(0));

        for(int i=0;i<labelImag.rows();i++)
        {
            for(int j=0;j<labelImag.cols();j++)
            {
                double checker = labelImag.get(i, j)[0];
                Rect rect = null ;

                if(checker == 1)
                {
                    Imgproc.floodFill(labelImag, mask, new Point(j,i), labelCount, rect, new Scalar(0), new Scalar(0), 8);

                Vector<Point> blob = null;
                for(int k=rect.y; k < (rect.y+rect.height); k++) 
                {
                    for(int l=rect.x; l < (rect.x+rect.width); l++) 
                    {
                        double chk = labelImag.get(k,l)[0];
                        if(new Scalar(chk) == labelCount) 
                        {
                            blob.add(new Point(k,l));
                        }                        
                    }
                }

                blobReturn.add(blob);
                val=val+1;
                 labelCount=new Scalar(val);
                }

            }

        }

上面提到的是我的代码。我的问题是在哪个参数中我得到了floodfill的结果来找到连接组件的位置。我在rect中变为null。我已经用C或C ++解释了问题,它传递了rect的指针并在rect中得到了结果但在java中?????

0 个答案:

没有答案