基于OpenCV的条形码区域检测(四)
由于近期手中许多项目要做,所以这一篇一直没有更新。
在上一篇时,提到了将整幅图像进行分区块并统计每个区块中的各个像素的方向信息,以得知该区块中是否存在条形码。
///将各个区块计算Sobel,并得到每个像素的方向信息,进行统计存储
void sobelAndCalc(Mat &img) {
static int idx = 0;
///不纳入统计的梯度强度阈值比例
const float GRADIANT_THRESHOLD = 0.4f;
#ifdef FILE_SAVE
char index[10];
itoa(i, index, 10);
string indexstr(index);
#endif
///纳入统计的像素值的数量
long pixelCnt = 0;
Mat gx(img.rows, img.cols, CV_32F);
Mat gy(img.rows, img.cols, CV_32F);
Sobel(img, gx, CV_32F, 1, 0, -1);
Sobel(img, gy, CV_32F, 0, 1, -1);
///初始化角度直方图
memset(hist, 0, sizeof(long) *