Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The countNonZero() method can process single channel images only, but it seems your grayMat isn't.

I suspect it keep a draw-able gray-scale image, i.e. of type CV_8UC4 and the channel ## 0,1,2 have the same values and the channel #3 is filled with 255 value.

I suggest you extract say the 1st channel and call the countNonZero() method:

  Mat m = new Mat();
  Core.extractChannel(grayMat, m, 0);
  int n = Core.countNonZero(m);