mVecRects.clear();
RgbAvgGray rg = new RgbAvgGray();
try {
rg.push(rgb);
Gray8Image gray = (Gray8Image) rg.getFront();
Gray8Crop crop = new Gray8Crop(0, 0, mHcc.getWidth(), mHcc.getHeight());
int nHorizSkip = Math.max(rgb.getWidth()/16, mHcc.getWidth() / 10);
int nVertSkip = Math.max(rgb.getHeight()/16, mHcc.getHeight() / 10);
for (int i=0;
i<=gray.getHeight()-mHcc.getHeight() && mVecRects.size() == 0;
i+=nVertSkip) {
for (int j=0;
j<=gray.getWidth()-mHcc.getWidth() && mVecRects.size() == 0;
j+=nHorizSkip) {
mRectCurrent = new Rect(j, i, mHcc.getWidth(), mHcc.getHeight());
crop.setWindow(mRectCurrent);
crop.push(gray);
Gray8Image cropped = (Gray8Image) crop.getFront();
boolean bRect = false;
if (mHcc.eval(cropped) || bRect) {
Rect r = new Rect(j, i, mHcc.getWidth(), mHcc.getHeight());
mVecRects.add(r);
}