OpenCV单词轮廓检测

06-28 1083阅读

OpenCV单词轮廓检测

    • 0. 前言
    • 1. 策略分析
    • 2. 检测字符轮廓
    • 3. 检测单词轮廓
    • 相关链接

      0. 前言

      在根据文档图像执行单词转录时,通常第一步是识别图像中单词的位置。我们可以使用两种不同的方法识别图像中的单词:

      • 使用 CRAFT、EAST 等深度学习技术
      • 使用基于 OpenCV 的技术

        在本节中,我们将学习如何在不利用深度学习的情况下识别机器打印的单词。由于打印单词的背景和前景之间的对比度很高,因此不需要像 YOLO 之类的模型来识别单个单词的位置,在这种情况下,使用 OpenCV 可以在计算资源非常有限的情况下获得解决方案,唯一的缺点是准确率可能并非 100%,准确率取决于扫描图像的质量,如果扫描图像非常清晰,则准确率可以接近 100%。

        1. 策略分析

        利用 OpenCV 识别图像中的单词策略如下所示:

        1. 将图像转换为灰度图像
        2. 放大图像中的内容,膨胀操作可以将黑色像素扩散到相邻区域,因此将同一单词的字符连接起来,有助于确保同一个单词的字符之间的连接;需要注意的是,不能过度膨胀,以至于将属于不同相邻单词的字符也连接起来
        3. 连接字符后,利用 cv2.findContours 在每个单词周围绘制一个边界框

        2. 检测字符轮廓

        (1) 加载图像,并查看图像样本:

        import cv2, numpy as np
        img = cv2.imread('1.png')
        img1 = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
        import matplotlib.pyplot as plt,cv2
        plt.imshow(img1)
        plt.show()
        

        OpenCV单词轮廓检测

        (2) 将输入图像转换为灰度图像:

        img_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
        

        (3) 随机裁剪原始图像:

        crop = img_gray[250:300,50:200]
        plt.imshow(crop,cmap='gray')
        plt.show()
        

        OpenCV单词轮廓检测

        (5) 二值化输入灰度图像:

        _img_gray = np.uint8(img_gray  
        

        将小于 200 的像素的值置为 0,而像素强度大于 200 的值置为 255。

        (6) 查找图像中的字符轮廓:

        contours,hierarchy = cv2.findContours(_img_gray,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
        

        使用 cv2.findContours 函数可以通过将一组连续的像素创建为对象的单个区域来查找轮廓。

        (7) 将阈值图像转换为三通道图像,以便在字符周围绘制彩色边界框:

        thresh1 = np.stack([_img_gray]*3,axis=2)
        

        (8) 创建空白图像,以便将 thresh1 中的相关内容复制到新图像中:

        thresh2 = np.zeros((thresh1.shape[0],thresh1.shape[1]))
        

        (9) 获取轮廓并在轮廓所在的位置绘制一个矩形边界框,同时,将 thresh1 图像中与矩形边界框对应的内容复制到 thresh2 中:

        for cnt in contours:
            if cv2.contourArea(cnt)>0:
                [x,y,w,h] = cv2.boundingRect(cnt)
                if ((h>5) & (h5:
                [x,y,w,h] = cv2.boundingRect(cnt)
                if ((h>5) & (h
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]