我正在使用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中?????