bool DoThresholdLocal(const cv::Mat& cvImgIn, cv::Mat& cvImgOut, const int nHoriSepa, const int nVertSepa)
{
const int nImgRows = cvImgIn.rows;
const int nImgCols = cvImgIn.cols;
cvImgOut.create(cv::Size(nImgCols, nImgRows), CV_8UC1);
int nUnitRow = nImgRows / nVertSepa;
int nUnitCol = nImgCols / nHoriSepa;
for (int nRId = 0; nRId < nVertSepa; ++nRId)
{
for (int nCId = 0; nCId < nHoriSepa; ++nCId)
{
cv::Rect RtROI = cv::Rect(nCId*nUnitCol, nRId*nUnitRow, nUnitCol, nUnitRow);
cv::Mat cvImgIn_ROI = cvImgIn(RtROI);
cv::Mat cvImgOut_ROI = cvImgOut(RtROI);
cv::threshold(cvImgIn_ROI, cvImgOut_ROI, 0, 255, cv::THRESH_OTSU);
}
}
return true;
}