【问题标题】:How to detect text from image using opencv如何使用opencv从图像中检测文本
【发布时间】:2021-10-04 12:40:58
【问题描述】:

我想检测图像中的后续文本,但 opencv 无法检测到文本。谁能建议我另一种找到它的方法?

【问题讨论】:

    标签: python opencv east-text-detector


    【解决方案1】:

    嗯,一种方法是您可以构建自己的卷积神经网络 (CNN) 从图像中检测字母/字母

    您可以使用这些代码生成自己的数据库,此代码将生成特定字母的图像

    您可能需要修改代码,因为它可能没有给定路径的文件夹,并且您可能需要处理一些硬代码值(静态)

    import os
    import matplotlib.font_manager
    from PIL import Image, ImageDraw , ImageFont
        
    def rotate_image(image_to_rotate, font_index, parent_folder):
        src_im = Image.open(image_to_rotate)
        angle = 0
        while(angle < 15):
            angle += 5
            size = 320, 320
            dst_im = Image.new("RGBA", (320,320), "black" )
            im = src_im.convert('RGBA')
            rot = im.rotate( angle, expand=1 ).resize(size)
            dst_im.paste( rot, (0, 0), rot )
            r_img_dir = "%s\%s%s%s%s" % ( parent_folder, str(fonts.index(font)).zfill(5), "_rotated_by_", str(angle), ".png")
            dst_im.save(r_img_dir)
            
    chars = [] 
    for i in range(65,91): # Fix me 
        chars.append(chr(i))
    
    for k in range(10):
        chars.append(k)
    
    for ch in chars: # Remove me [:1]
        char= str(ch) # Fix me use instance of to check if int or Str ..     
        os.makedirs(os.path.join('folder', char)) # Fix me 
        fonts = matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
        p_folder =  "%s\%s" % ( 'folder', char )
        font_count =0 
        for font in fonts:  # Remove me  [:10]
            get_str_for_spt = font[0:17]
            font_name = font.replace(get_str_for_spt,"")
            font_count += 1
            if font_count > 10:
                break
            img = Image.new('RGB', (320, 320), color = (0,0,0))  # make it - 16x16 in place of 32x32
            d = ImageDraw.Draw(img)
            img_font = ImageFont.truetype(font, 300)  # make it 12 in place of 16
            d.text((0,0),char, font=img_font)
            img_save_dir = "%s\%s_%s%s" % ( p_folder, str(fonts.index(font)).zfill(5),font_name, ".png")
            img.save(img_save_dir)
            rotate_image(img_save_dir, str(fonts.index(font)).zfill(5), p_folder)
    
    print("Executed")
    

    您也可以参考以下链接

    https://www.geeksforgeeks.org/text-detection-and-extraction-using-opencv-and-ocr/

    Detect text area in an image using python and opencv

    Detect text region in image using Opencv

    How to process and extract text from image

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 2016-03-28
      • 2014-08-14
      • 2017-01-02
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      相关资源
      最近更新 更多