J'essaie d'utiliser l'algorithme floodFill sur mon application android. Je clique sur un point pour sélectionner la graine. Ensuite, je lance l'algorithme de remplissage. Je veux montrer seulement zone sélectionnée même que la couleur des graines. Pour ce faire, j'affiche un objet masque. Mais il est noir à chaque fois, ça ne change pas. J'ai utilisé les drapeaux FLOODFILL_FIXED_RANGE
et FLOODFILL_MASK_ONLY
.Opencv - FloodFill ne change pas l'image du masque
Mon code est ici:
Imgproc.cvtColor(mRgba, temp, Imgproc.COLOR_RGBA2RGB);
Imgproc.cvtColor(temp, temp, Imgproc.COLOR_RGB2GRAY);
mMask = Mat.zeros(mMask.size(), CvType.CV_8UC1);
Imgproc.floodFill(temp, mMask, fpts.get(fpts.size()-1), new Scalar(255, 255, 255),new Rect(new Point(0,0), new Point(5,5)),new Scalar(30), new Scalar(30), Imgproc.FLOODFILL_FIXED_RANGE);
Core.circle(temp, fpts.get(fpts.size()-1), 7, new Scalar(255, 255, 255), RADIUS);
Mat temp3 = new Mat(temp.size(), mMask.type());
temp3 = mMask.submat(new Rect(2, 2, mMask.width()-2, mMask.height()-2)) ;
Log.i(TAG, temp3.width() + "-" + temp3.height()+"**" + temp.width()+"-"+temp.height());
///Show me what you got from template matching
Core.rectangle(temp, matchLoc, new Point(matchLoc.x + mTemp.cols(),
matchLoc.y + mTemp.rows()), new Scalar(0, 255, 0));
return temp3;
Si je reviens temp
, je peux montrer l'image d'entrée a changé.