基于OpenCV的条形码区域检测(五)
在上一篇中,将分好区块的图片进行了Sobel,并滤除了纹理的干扰,得到了每个区块的角度信息,以及各个区块中有效像素点总数,但是只有这些还不能够直接判断哪一个区块内存在条形码,还需要做些处理。
以下代码为遍历每块区块,并计算其有效像素点占像素总数的比例,以便后面排除干扰区块的影响。
///获得直方图中值最高的项,并返回其与相邻项的和
long getMaxWithAdj(long* hist, int &index) {
long max = 0;
int maxindex = 0;
for (int i = 0; i < 8; ++i) {
if (hist[i] > max) {
max = hist[i];
maxindex = i;
}
}
index = maxindex;
return hist[(maxindex - 1) % 8] + hist[maxindex] + hist[(maxindex + 1) % 8];
//long *newHist = new long[8];