Пример #1
0
def model(img,adjust=False,detectAngle=False):
    """
    @@param:img,
    @@param:model,选择的ocr模型,支持keras\pytorch版本
    @@param:adjust 调整文字识别结果
    @@param:detectAngle,是否检测文字朝向
    
    """
    angle = 0
    if detectAngle:
        
        angle = angle_detect(img=np.copy(img))##文字朝向检测
        im = Image.fromarray(img)
        if angle==90:
            im = im.transpose(Image.ROTATE_90)
        elif angle==180:
            im = im.transpose(Image.ROTATE_180)
        elif angle==270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)
        
    text_recs,tmp,img = text_detect(img)
    text_recs = sort_box(text_recs)
    result = crnnRec(img,text_recs,model,adjust=adjust)
    return result,tmp,angle
Пример #2
0
def model(img, model='keras', adjust=False, detectAngle=False):
    """
    @@param:img,
    @@param:model,选择的ocr模型,支持keras\pytorch版本
    @@param:adjust 调整文字识别结果
    @@param:detectAngle,是否检测文字朝向

    """
    angle = 0
    if detectAngle:
        # 进行文字旋转方向检测,分为[0, 90, 180, 270]四种情况
        angle = angle_detect(img=np.copy(img))  # 文字朝向检测
        print('The angel of this character is:', angle)
        im = Image.fromarray(img)
        print('Rotate the array of this img!')
        if angle == 90:
            im = im.transpose(Image.ROTATE_90)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)
    # 进行图像中的文字区域的识别
    text_recs, tmp, img = text_detect(img)
    # 识别区域排列
    text_recs = sort_box(text_recs)
    #
    result = crnnRec(img, text_recs, model, adjust=adjust)
    return result, tmp, angle
Пример #3
0
def model(img, _model='keras', adjust=False, detect_angle=False):
    """
    :param img:
    :param _model: 选择的ocr模型,支持keras\pytorch版本
    :param adjust: 调整文字识别结果
    :param detect_angle: 是否检测文字朝向
    :return:
    """
    angle = 0
    if detect_angle:
        # 文字朝向检测
        angle = angle_detect(img=np.copy(img))
        im = Image.fromarray(img)
        if angle == 90:
            im = im.transpose(Image.ROTATE_90)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)

    text_recs, tmp, img = text_detect(img)
    text_recs = sort_box(text_recs)
    result = crnnRec(img, text_recs, _model, adjust=adjust)
    return result, tmp, angle
def model(img, adjust=False, detectAngle=False):

    angle = 0
    if detectAngle:

        angle = angle_detect(img=np.copy(img))
        im = Image.fromarray(img)
        if angle == 90:
            im = im.transpose(Image.ROTATE_90)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)

    text_recs, tmp, img = text_detect(img)
    text_recs = sort_box(text_recs)
    result = crnnRec(img, text_recs, model, adjust=adjust)
    return result, tmp, angle
Пример #5
0
def model(img, adjust=False, detectAngle=False):
    """
    @img: 图片
    @adjust: 是否调整文字识别结果
    """
    angle = 0
    if detectAngle:
        angle = angle_detect(img=np.copy(img))  ##文字朝向检测
        im = Image.fromarray(img)
        if angle == 90:
            im = im.transpose(Image.ROTATE_90)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)
    cfg_from_file('./ctpn/ctpn/text.yml')
    text_recs, img_framed, img = text_detect(img)
    text_recs = sort_box(text_recs)
    result = charRec(img, text_recs, adjust)
    return result, img_framed
Пример #6
0
def model(img, model='keras', adjust=False, detectAngle=False):

    angle = 0
    if detectAngle:

        angle = angle_detect(img=np.copy(img))
        print('The angel of this character is:', angle)
        im = Image.fromarray(img)
        print('Rotate the array of this img!')
        if angle == 90:
            im = im.transpose(Image.ROTATE_90)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_270)
        img = np.array(im)

    text_recs, tmp, img = text_detect(img)

    text_recs = sort_box(text_recs)
    #
    result = crnnRec(img, text_recs, model, adjust=adjust)
    return result, tmp, angle
Пример #7
0
def model(img, model, adjust=False, detectAngle=False):
    """
    @@param:img,输入的图像数组
    @@param:model,选择的ocr模型,支持pytorch版本
    @@param:adjust 调整文字识别结果
    @@param:detectAngle,是否检测文字朝向
    
    """
    angle = 0
    if detectAngle:
        # 进行文字旋转方向检测,分为[0, 90, 180, 270]四种情况,下面所用的是逆时针旋转,因此需要改正
        angle = angle_detect(img=np.copy(img))  ##文字朝向检测
        print('The angel of this character is:', angle)
        im = Image.fromarray(img)
        print('Rotate the array of this img!')
        if angle == 90:
            im = im.transpose(Image.ROTATE_270)
        elif angle == 180:
            im = im.transpose(Image.ROTATE_180)
        elif angle == 270:
            im = im.transpose(Image.ROTATE_90)
        img = np.array(im)
    print(img)
    # 进行图像中的文字区域的识别
    t = time.time()
    text_recs, tmp, img = text_detect(img)
    print('image area recognition finished!')
    print("It takes time:{}s".format(time.time() - t))
    # 识别区域排列
    text_recs = sort_box(text_recs)
    # 文本识别
    t = time.time()
    result = crnnRec(img, text_recs, ocrMode=model, adjust=adjust)
    print('end-to-end text recognition finished!')
    print("It takes time:{}s".format(time.time() - t))
    return result, tmp, angle