#include "ImgDivider.h"
|
|
|
bool ImgDivider::isRowFull(cv::Mat img, int row) {
|
int cols = img.cols;
|
int rows = img.rows;
|
int emptyCount = 0;
|
for (int i = 0;i < cols;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data < BLANK_COLOR_VALUE) {
|
//ÔÊÐí×î´óÓÐ10¸ö¿ÕÊý¾Ý
|
if (emptyCount < 10) {
|
emptyCount++;
|
continue;
|
}
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isRowFull(cv::Mat img, int row, int startCol, int endCol, int simple) {
|
int emptyCount = 0;
|
for (int i = startCol;i <= endCol;i += simple) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data < BLANK_COLOR_VALUE) {
|
//ÔÊÐí×î´óÓÐ10¸ö¿ÕÊý¾Ý
|
if (emptyCount < 10) {
|
emptyCount++;
|
continue;
|
}
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isRowFull(cv::Mat img, int row, int startCol, int endCol, int simple,int splitColorFrom, int splitColorTo) {
|
int emptyCount = 0;
|
for (int i = startCol;i <= endCol;i += simple) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data > splitColorTo|| data< splitColorFrom) {
|
//ÔÊÐí×î´óÓÐ10¸ö¿ÕÊý¾Ý
|
if (emptyCount < 10) {
|
emptyCount++;
|
continue;
|
}
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isRowEmpty(cv::Mat img, int row) {
|
int cols = img.cols;
|
for (int i = 0;i < cols;i += 1) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isRowEmpty(cv::Mat img, int row, int startCol, int endCol) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = startCol;i < endCol;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
|
bool ImgDivider::isRowEmpty(cv::Mat img, int row, int startCol, int endCol,int simple) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = startCol;i < endCol;i += simple) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isRowEmpty(cv::Mat img, int row, int startCol, int endCol, int simple, int blankColorValue) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = startCol;i < endCol;i += simple) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data >= blankColorValue) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
|
bool ImgDivider::rowHasData(cv::Mat img, int row) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = 0;i < cols;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(row)[i];
|
if (data >= BLANK_COLOR_VALUE) {
|
return true;
|
}
|
}
|
return false;
|
}
|
bool ImgDivider::isColFull(cv::Mat img, int col, int startRow) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = startRow;i < rows;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data < BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
|
bool ImgDivider::isColFull(cv::Mat img, int col, int startRow,int endRow,int simple) {
|
for (int i = startRow;i <= endRow;i += simple) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data < BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isColEmpty(cv::Mat img, int col) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = 0;i < rows;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isColEmpty(cv::Mat img, int col, int simple) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = 0;i < rows;i += simple) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isColEmpty(cv::Mat img, int col, int fromRow, int endRow) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = fromRow;i <= endRow;i += 1) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data >= BLANK_COLOR_VALUE) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::isColEmpty(cv::Mat img, int col, int fromRow, int endRow, int blankColorValue) {
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = fromRow;i <= endRow;i += 1) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data >= blankColorValue) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
bool ImgDivider::colHasData(cv::Mat img, int col) {
|
|
int cols = img.cols;
|
int rows = img.rows;
|
for (int i = 0;i < rows;i += SIMPLE_SPACE) {
|
uchar data = img.ptr<uchar>(i)[col];
|
if (data >= BLANK_COLOR_VALUE) {
|
return true;
|
}
|
}
|
return false;
|
}
|