基于OpenCV的条形码区域检测(四)

本文是基于OpenCV进行条形码区域检测系列的第四部分,介绍了如何通过图像分块、像素方向信息统计来判断区块是否包含条形码。文章提供了角度直方图的生成方法,但因时间间隔长,作者对原始代码的理解已变得模糊。
摘要由CSDN通过智能技术生成

基于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) *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值