最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用cnocr庫實(shí)現(xiàn)pdf文件的文字識(shí)別

 更新時(shí)間:2024年12月12日 11:46:07   作者:yivifu  
很多pdf文件文字識(shí)別軟件都會(huì)收費(fèi),免費(fèi)的網(wǎng)頁版可能會(huì)帶來信息泄露,所以本文為大家介紹了如何利用Python中的cnocr庫完成中文掃描pdf文件的文字識(shí)別,需要的可以參考下

很多pdf文件文字識(shí)別軟件都會(huì)收費(fèi),免費(fèi)的網(wǎng)頁版可能會(huì)帶來信息泄露,還有一些類似于騰訊AI和百度AI的接口都有調(diào)用次數(shù)限制,因此,利用識(shí)別正確率極高且免費(fèi)的cnocr庫來自己動(dòng)手做個(gè)pdf文件文字識(shí)別程序就是一個(gè)很不錯(cuò)的選擇。以下程序利用pymupdf打開pdf文件并將頁面圖像數(shù)據(jù)讀出,然后用numpy將pymupdf讀取的頁面圖像轉(zhuǎn)換為cnocr能夠接受的np.ndarray格式的圖像數(shù)據(jù),再由cnocr進(jìn)行文字識(shí)別。numpy、pymupdf和cnocr庫的安裝都可以用pip install指令簡(jiǎn)單完成,不多贅述。

import numpy as np
from cnocr import CnOcr
from pymupdf import pymupdf


def pdf2txt(input_file, output_file, start_page=0, page_count=-1):
    """
    將掃描的pdf文件中指定的頁面范圍內(nèi)的內(nèi)容轉(zhuǎn)換成文本文件
    :param input_file: 要識(shí)別的pdf文件的相對(duì)或絕對(duì)路徑,包含文件名的字符串
    :param output_file: 保存識(shí)別結(jié)果的txt文件的相對(duì)或絕對(duì)路徑
    :param start_page: 識(shí)別起始頁面,默認(rèn)為第1頁
    :param page_count: 識(shí)別的頁數(shù),默認(rèn)為所有頁面
    :return:
    """
    pdf = pymupdf.open(input_file)
    count = pdf.page_count

    if start_page < 0:
        start_page = 0
    if page_count < 0 or page_count + start_page > count:
        end_page = count
    else:
        end_page = page_count + start_page
    # 如CnOcr的識(shí)別模型尚未下載,以下語句執(zhí)行時(shí)CnOcr會(huì)自動(dòng)下載模型并解壓到用戶目錄下的AppData\\Roaming\\cnocr\\cnocr版本號(hào)下
    # 也可以在初始化時(shí)指定rec_model_fp參數(shù)給出模型所在的相對(duì)路徑或絕對(duì)路徑指定識(shí)別模型,如以下示例(因以下路徑是我的電腦上的默認(rèn)路徑,
    # 因此下面兩行代碼與ocr = CnOcr()完全等價(jià)
    ocr = CnOcr(rec_model_fp='C:\\Users\\asus\\AppData\\Roaming\\cnocr\\2.3\\densenet_lite_136-gru'
                             '\\cnocr-v2.3-densenet_lite_136-gru-epoch=004-ft-model.onnx')
    print(start_page, end_page)

    with open(output_file, 'w', encoding='utf-8') as f:
        for i in range(start_page, end_page):
            page = pdf[i]
            pix = page.get_pixmap()
            width = pix.width
            height = pix.height
            # pixmap轉(zhuǎn)換為nympy.ndarray,供CnOcr識(shí)別
            image = np.frombuffer(pix.samples, dtype=np.uint8).reshape(height, width, pix.n)
            res = ocr.ocr(image)
            string_list = []
            for val in res:
            	# 注意這是2.2版本以后的cnocr讀取識(shí)別結(jié)果的方式與2.1版本已經(jīng)不同
            	# 如果cnocr識(shí)別結(jié)果總是一些textscoreposition字符串,那就是用了老版的方式
                string_list.append(val['text'])

            ocr_result_string = '\n'.join(string_list)
            f.write(ocr_result_string)  # 這行代碼自帶文件關(guān)閉功能,不需要再寫 f.close()
            print(f'page{i + 1} finished.')

    pdf.close()


input_file = f'test.pdf'
output_file = 'test.txt'
pdf2txt(input_file, output_file, 500, 522)

需要注意的是,在讀取cnocr的識(shí)別結(jié)果時(shí),如果安裝的cnocr版本低于2.2,那么

以上代碼中的

for val in res:
    string_list.append(val['text'])

要改成下面這樣:

for i in range(len(res)):
    for j in res[i]:
        string_list.append(j)

但是2.2版本以后的cnocr如果仍然用以上方式,那么取出的識(shí)別結(jié)果將是一串“textscoreposition”。

下面是以上程序識(shí)別曹植集校注中一頁的結(jié)果:

(本冥指隱蔽偏鮮之處。此言卡太后即使在獨(dú)處之時(shí)也很謹(jǐn)慎,在隱
游之處電依禮行。
5〔誠(juon))潔也?!菜])進(jìn)獻(xiàn)。〔三牲)牛、羊、豬,指祭
品。此吉請(qǐng)凈地進(jìn)獻(xiàn)祭品。(視)條配時(shí)主持條禮之人。
3〔宜享斯祜]應(yīng)該享受知此之服。精:棋。宋本作“”?!裁?br />社〕即受桶。(肉特)鍋獎(jiǎng)。(勉)月“免。即超免
四〔會(huì)街盡禮)條祀折特時(shí)湖盡禮數(shù)。篤)厚,指調(diào)情加重。
[密)痊愈。(終)指生命到終點(diǎn)。
等〔遺州)南植自指。(在收)指在優(yōu)傷久病之中。(部)指下太
后去世的內(nèi)信。〔東藩)洛陽東面的藩國。曹植時(shí)時(shí)東阿王。東阿在洛
陽東。[郊甸)郊野。丁本:《藝文類聚》作“晗。”家本亦作“除”。
哈指田地里的小路、與籌義同。(中原)原野之中。
中(皇址]望號(hào)。[遷)肉去。[峽復(fù)) 經(jīng)常來看我。
等〔歲字)空貌,即人去限空。(巡省階除)在宮中的小道上巡視。
(仿佛碳軒在窗戶間仿佛著見了下太行的身影容艦。銀軒:窗戶。
就【韓梨)指下太后的居室。(兒益)兒席。座席。〔效故)改變
原承的樣子。
2〔酷指您傷全做。斯)如此。(墻)。(魏部)指鄴。曹操
界于都,下太后的是權(quán)專運(yùn)到部與曹操合養(yǎng)。(日包)指鄴?!菜恚?amp;
道?!财?《藝文類聚》、宋本俱作“將”。
3(嘆息露興)嘆息之氣粥如霧氣興起,形容送師人之多?!卜?br />(r而))靈車。
容車飾駕,以合北展®
0丁本:“《文選》顏廷年《宋元泉后哀策文》李注引《上宜后請(qǐng)
&》.
-469.

原始掃描頁面100%縮放圖像如下:

可見準(zhǔn)確率也還勉強(qiáng)可以接受。如果將圖像做個(gè)對(duì)比度增強(qiáng)并適當(dāng)放大再識(shí)別,還可以進(jìn)一步提高準(zhǔn)確率。下面是使用OpenCV將圖片放大2倍后的識(shí)別結(jié)果,對(duì)比可以看出準(zhǔn)確率有所提高:

(本冥〕指隱蔽偏解之處。此言卡太后即使在獨(dú)處之時(shí)也很謹(jǐn)慎,在隱
游之處也依禮間行。
S(磚(juon))潔也?!菜]〕進(jìn)獻(xiàn)。(三牲〕牛、羊、豬.指祭
品。此言潔凈地進(jìn)獻(xiàn)祭品。(?!臣漓霑r(shí)主持祭禮之人。
3(宜享斯祜)應(yīng)該享受知此之福。精:攝、宋本作“豬”。〔蒙
社〕即受福?!矁淳?禍火?!裁悖┰?ldquo;免”.即避免。
四〔云傳盡禮)條祀祈傳時(shí)湖盡禮數(shù)。篤)厚,指病情加重。
(瘡)經(jīng)?!步K)指生命到終點(diǎn)。
多〔逸弧)曹植自指。(在款)指在優(yōu)傷久病之中。(諱)指下太
后去世的內(nèi)信。〔東洛)洛陽東面的等國。、曹植時(shí)村東阿王。東阿在洛
陽東。(郊甸)郊野。丁本:《藝文類聚》作“峰。”宋本亦作“時(shí)”。
哈指田地里的小路。與年義同。(中原)原野之中。
9(皇址)皇號(hào)。[遷〕肉去。[峽復(fù)〕經(jīng)常來看我。
0〔歲凱)空貌,即人去屋空?!惭彩‰A涂)在宮中的小道上巡視。
(仿佛候軒)在窗戶間仿佛看見了卡太后的身影容顏。領(lǐng)軒:窗戶。
就〔韓蟹)指下太后的店室?!矁毫鳎﹥合?。座席?!矤C故)改變
原來的樣子。
心〔酷)指悲傷至極。〔斯)如此。(秦)到?!参憾?指鄴。曹操
養(yǎng)于郎,下太后的是框要運(yùn)到第與曹操合養(yǎng)。(舊色)指鄴。(能)眾
道?!财?《藝文類聚》、宋木供作“將”。
3(嘆息露興)嘆息之氣宛如霧氣興起,形容送葬人之多?!卜?br />(r而))靈車。
容車飾駕,以合北辰®
0丁本:“《文選》顏廷年《宋元皇后哀策文》李注引《上宣后請(qǐng)
表.”
.469.

以上就是Python利用cnocr庫實(shí)現(xiàn)pdf文件的文字識(shí)別的詳細(xì)內(nèi)容,更多關(guān)于Python cnocr pdf文字識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

伊吾县| 紫金县| 邵阳县| 全州县| 河间市| 龙井市| 大化| 肇源县| 南宁市| 凤山县| 招远市| 洛浦县| 浮山县| 富平县| 梧州市| 高密市| 濮阳市| 海安县| 长沙市| 开原市| 上林县| 张北县| 龙南县| 抚顺市| 连城县| 乐东| 遵化市| 抚宁县| 温州市| 灌阳县| 如东县| 双江| 无为县| 巩义市| 方城县| 青田县| 玛曲县| 东乌珠穆沁旗| 方山县| 泽州县| 长寿区|