【批量图片转化文本】

代码的使用案例,主要是给到做数据分析的小伙伴使用,因为日常中我们从平台获取的数据,可能是图片也可能由于截取图片比较方便,但是做分析,需要转化文本,再从文本中进行自然语言处理,所以图片转文本是第一步。希望该文章对你有帮助~~~

图片获取

import os
def get_img_file(file_name):
    imagelist = []
    for parent, dirnames, filenames in os.walk(file_name):
        for filename in filenames:
            if filename.lower().endswith(
                    ('.png', '.jpg')):
                imagelist.append(os.path.join(parent, filename))
        return imagelist
  1. os.walk 可以遍历文件夹所有的文件,具体使用方法可以:https://www.runoob.com/python/os-walk.html
  2. 若是并非所有文件都是目标文件,可以根据需要自行选择,案例中通过后缀的方式进行限制 filename.lower().endswith()是将文件夹名词进行全部小写之后再根据后缀判断
  3. 最后的存储对象是以列表的形式输出

图片转化为文本

from cnocr import CnOcr

ocr = CnOcr()
'图片解析成文本'
def picture_ocr(image_name):
    result_ocr = ocr.ocr(image_name)
    text = ''
    for list_text in result_ocr:
        text = text + list_text['text'] + '\n'
    return text

  1. 进行下载安装CnOcr,有很大概率会出错,包括网络不行或者其他原因,可以通过安装包下载的方式进行内容替换。若是要找到对应文件夹的位置,可以先试着运行ocr= CnOcr(),会告知哪些文件夹错误,安装教程https://cnocr.readthedocs.io/zh/latest/install/,安装包可以到GITHUB寻找
  2. 内容:会把识别的所有内容都输出,需要根据需要进行数据处理,比如案例中我是获取到文本之后进行合并字符串,并通过转行符进行数据格式调整。

识别结果存储

import pandas as pd
def data(file):
    name = ['one']
    data_all = {}
    result = pd.DataFrame(data_all, columns=name)
    iamge_list = get_img_file(file)
    for image in iamge_list:
        da = picture_ocr(image)
        result.loc[len(result.index)] = [da]
    return result
  1. 案例中是采用pd.DataFrame()进行内容存储,为了方便后面进行excel 存储
  2. pd.DataFrame()初始化是需要先设置列字段,但是可以用一个空的字典
  3. 行列都可以根据需要进行新增,案例是新增行result.loc[len(result.index)] = [da]

主函数

if __name__ == '__main__':
    over=data(文件夹路径)
    over.to_csv("./over.csv", index=False)
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值