void StemDetection::findStems() { cerr << "...Finding stems..." << endl; int nRows = vBoard.size(), nCols = vBoard[0].size(); for (int j = 0; j < nCols; j++) { for (int i = 0, len = 0, start = 0; i <= nRows; i++) { if (i == nRows || vBoard[i][j] == WHITE) { if (len >= 2 * staffSpaceHeight) { Stem stem; for (int k = start; k < i; k++) stem.AddPixel(Point2i(k, j)); if (isStem(stem)) stems.push_back(stem); } len = 0; start = i + 1; continue; } else len++; } } mergeStems(); filterStems(); }