精华内容
下载资源
问答
  • 图片转文字工具
  • 图片版PDF无法复制,转化成文字版的PDF后使用更方便. 我们需要用到python3.6,pypdf2,ghostscript,PythonMagick,百度文字识别服务和pdfkit. 安装 安装python3.6 略 安装ghostscript ... 安装wkhtmltopdf ...
  • Android实现文字转图片

    2016-11-22 09:22:48
    Android实现文字转图片,可以设置文字大小,文字字体,文字颜色,文字透明度,背景颜色,背景透明度,是否保存到SD卡上
  • 图片转文字

    2018-07-25 18:38:11
    图片转文字图片图片转文字图片图片转文字图片图片转文字图片
  • 参见文章:...文字附带完整使用方法。 使用 python3 开发,通过按住 ctrl 键 并左键点击2点(左上角和右下角区之间的区域),获取需要识别的区域。联网的情况下,获取的文字写入粘贴板。 高效实用。
  • 原理 通过指定字体 指定颜色 取得颜色坐标 通过坐标集转换为特征码 图3 为随机生成汉字 并通过以上说过的方法取得特征码 写入edb数据库内图1则通过以上方法取得特征码 通过查找edb数据库得到相应基本上挂着图3 ...
  • 使用python编写,实现将图片转换成相似的文字图案。生成的文本大小可以更改,程序定义四个参数:转换的图片地址 宽 高 生成的目标文件地址。
  • 图片转文字工具.zip

    2020-06-22 15:24:53
    单张图片转文字,也可以进行多张图片转文字,方便操作,生成的文本路径在选择的图片文件夹目录或文件所在路径.完全免费
  • 易语言图片转文字

    2018-09-23 03:38:49
    易语言图片转文字
  • pdf转文字图片

    2017-09-15 15:42:30
    使用pdfbox把pdf转图片,读取pdf的文字,还有一些其他的小功能,jar包也已经打包在内,使用pdfbox把pdf转图片,读取pdf的文字,还有一些其他的小功能,jar包也已经打包在内
  • C#文字转透明背景图片,传人文字信息生成文字透明背景的图片
  • 本人对截取图片进行了尺寸上的优化,保证较小的文字也能识别。具体大家自行测试。 2、腾讯ocr接口,也比较准确,但是速度比较慢。 3、百度ocr接口,精确度还可以,但是标点符号识别不准确,速度一般。 4、有道ocr...
  • 全能扫描王.apk图片转文字 PDF转文字全能扫描王.
  • 一款小巧快速的识别图片转文字工具,直接将图片中的文字识别出来 文字的工具。
  • 基于Encoder-Decoder结构,图像转换为文字 采用 python代码实现
  • 图片转文字软件

    2017-03-12 10:30:27
    非常好用的图片转成pdf,图片转文字
  • java文字转图片

    热门讨论 2012-08-09 15:32:16
    java文字转图片
  • C#图片转文字.rar

    2020-07-15 10:50:01
    C#图片转文字
  • 主要为大家详细介绍了unity将图片转换成字体的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C#将图片里中文识别成文本文字,中文识别,.net 实现中文识别, 支持*.bmp; *.jpg; *.gif; *.jpeg;*.png等图片格式上的中文,文字 识别
  • 一个将图片转换成文字图的脚本,支持中文
  • 目前一款比较好用的图片识别文字的软件,可以直接将图片中的文字识别出来 转换为可复制的文字
  • pdfbox转图片所需字体

    2018-07-30 09:01:51
    在使用pdfbox进行pdf转图片时,若转换后的图片出现文字丢失的情况,可以通过替换文件中的字体库到操作系统解决。
  • 文字转svg -> svgpng -> 合并图片 相关轮子 images Node.js 轻量级跨平台图像编解码库,不需要额外安装依赖 text-to-svg 文字转svg svg2png svgpng图片 示例代码 'use strict'; const fs = require('fs'); ...
  • 图片转字符 图片转文字工具 图片转字符画工具
  • android 文字转换成图片

    千次下载 热门讨论 2012-08-16 11:27:19
    android 将文字转换成图片 测试代码
  • JAVA文本转图片

    2014-03-17 16:57:43
    程序中文字生成为图片,根据文字行数、每行文字个数自动设置生成图片的大小。生成图片后如需水印可查看我上传的其他资源进行处理。
  • Python | 图片转文字

    千次阅读 2019-04-01 15:24:08
    目录 1  背景2  数据概况3  需求4  利用Python进行转换4.1 ...导入相应的库4.2 ...设置百度云的API相关参数4.2.1 ...定义读取图片函数4.4  单独转换...

    1 背景

    现在需要分析大众点评网站的评论,进行情感分析,主题模型等等,所以第一步是进行爬虫,现在这部分工作已经完成(后面会总结利用Python进行爬虫)但是在爬虫的过程中发现了一个问题,就是点评网站上评论中会有部分是文字被替换成了图片,所以直接爬取评论下来就会出现信息不全的情况,这时候我们采用的方法是什么呢?

    • 第一步是使用截图的方式把评论给截下来!
    • 第二步是利用Python将图片转为文字!

    今天我们主要探讨的就是第二部分!如何将图片转为文字呢?

    2 数据概况

    那我们现在的数据是怎么样的呢?一个文件夹代表一个商家
    在这里插入图片描述

    每个文件夹下面呢?分别是这个商家对应的所有评论的截图!
    在这里插入图片描述

    3 需求

    现在的需求就是将每一个商家所有的评论图片全部转为文字,最后希望能形成一个DataFrame,有三列:

    • 一列是文件夹名称,也就是对应商户号
    • 一列是所有图片的全名
    • 一列是转为的文字的列

    4 利用Python进行转换

    4.1 导入相应的库

    import time
    import pandas as pd
    import json
    import random
    from aip import AipOcr
    import os
    

    4.2 设置百度云的API相关参数

    # 连接api
    APP_ID = "15433908"
    API_KEY = "tcHjIKc51txVe73RNA2Pt7pY"
    SECRET_KEY = "08OvI17ZHWt6Q9PoL4o885LXxRFvdSLG"
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    # 返回值设置
    options = {}
    options["language_type"] = "CHN_ENG"
    options["detect_direction"] = "False"
    options["detect_language"] = "False"
    options["probability"] = "False"
    

    4.2.1 如何获取上述API的相关关键参数?

    这就有一个问题了,如何设置百度云的相关API参数呢?

    • 首先注册登录百度云(网址:https://login.bce.baidu.com),

    • 然后找到下面这个东东:
      在这里插入图片描述

    • 然后创建一个项目
      在这里插入图片描述
      还可以看到今天我也使用了其中的一个项目 并且调用了接近3000次,也就是转换了这么多的图片!

    • 进入界面后填写相关信息,点击创建即可!
      在这里插入图片描述

    • 创建完毕之后,点击查看详情
      在这里插入图片描述

    • 然后就会看到下图了,重要的三个参数就可以获得!
      在这里插入图片描述
      然后把上述参数换成自己的就ok啦!注意一天免费使用50000次~

    下面就愉快的调用API啦~

    4.3 定义读取图片函数

    # 读取图片函数
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    

    4.4 单独转换图片的内容

    4.4.1 看共有多少文件夹

    # 读取评论信息下面所有文件夹的名称
    mer_folds = os.listdir('./评论信息/')
    print('文件夹下面共有 %d 个商户的评论图片' % len(mer_folds))
    mer_folds[:5]
    
    文件夹下面共有 138 个商户的评论图片
    
    
    
    
    
    ['68045603', '76936090', '23060131', '66264063', '95358955']
    

    4.4.2 看评论图片

    os.listdir('./评论信息/76936090')
    
    ['39018468.jpg']
    

    4.4.3 打印这个图片的内容

    get_file_content('./评论信息/76936090/39018468.jpg')
    
    b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x08\x06\x06\x07\x06\x05\x08\x07\x07\x07\t\t\x08\n\x0c\x14\r\x0c\x0b\x0b\x0c\x19\x12\x13\x0f\x14\x1d\x1a\x1f\x1e\x1d\x1a\x1c\x1c $.\' ",#\x1c\x1c(7),01444\x1f\'9=82<.342\xff\xdb\x00C\x01\t\t\t\x0c\x0b\x0c\x18\r\r\x182!\x1c!22222222222222222222222222222222222222222222222222\xff\xc0\x00\x11\x08\x00\x18\x02\xee\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17\x18\x19\x1a%&\'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x11\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12AQ\x07aq\x13"2\x81\x08\x14B\x91\xa1\xb1\xc1\t#3R\xf0\x15br\xd1\n\x16$4\xe1%\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf7)\xb5{+y\xee\xe2\x9a`\x86\xd2\x01q9 \xedD;\xb0I\xff\x00\x807\x1dx\xa7\xe9\xda\x85\xbe\xa9d\x97V\xc5\x8clJ\x95u*\xc8\xc0\xe0\xab)\xe4\x10A\x04\x1a\xe0\xe7\xd3\xe7\x83S\xd6&\x9e\xfe[\x99\x06\xa9h|\xa6\x00G#\xc8b\x08\x08\xeb\xb5\x018\x19\xc7s\x92+c\xec\xc6[\xbf\x14]%\xb3]\x15\x94\xdb\x1d<m\xf2\xae\xbfq\x13.\xf0x\xceX\x82x\xc8\xeb\x9c\nL\x0b\xf3\xf8\xcbG\xb6\xd2\xedu\t\xe5\x928.\xae\x9a\xd6<\xa6X\xb2\xb3+\x12\x07E\x1bI\'\xd2\xad\x0f\x12i\x0f\xa7G\xa8Gx\xb2\xdaH\xe5\x12X\x91\x9c\x16\x19\xc8\xf9A\xf45\xe3\xda7\x87\xf5\x18t\xdd*\xda\x1b\x08^\xe6y.\x1do\xb4\xc0\xb1\xdd\xc3\xe5K\x87\x0b\xbd\xd1\x06N\x06\xfc\x92T\xed\xdb\x81]\xa6\x95w\xa9\xd9\xfc7\xba\x8eH~\xc9%\x94\xff\x00fF\xb7\xff\x00\\\xdbe\n\xec\xca\x0b\x00\xe4\xee\xce\x19\xb2I=\xe9\xaf\xeb\xf0\x07\xa7\xf5\xeat\xd2x\xc3C\x89\x0b\xc9x\xe8\xa3\xab5\xbc\xa0\x7f\xe85xk\x16\x1b\xa1V\xb9T\xf3`k\x842\x02\xa3\xcbR\xa0\xb1$q\xcb\xaf\x07\x9ek\x8f\xbbk\x96\xd3u\x90[Sk ,\xfc\x93\xa8#+o\xf3\x8e\xfcn\x00\xe3\x1b+O^\xbd\xd3\xad|[f\x9a\x93\xa1\x86m2\xea#\tR\xe6]\xd2C\xf2\x84\x00\x96$\x03\xc0\x07\xa1\xa0\x0e\x8ak\xe8-\xef-md\'\xcd\xb9,#\x00u\xda2s\xe9\xc5d\xb7\x8c\xf48\xf5&\xb1\x9a\xe6XeVt\xdf-\xb4\x89\x19*H8\x90\xae\xd3\xc8#\xaf^:\xd6E\x85\xc5\xb4>,\xd34\xd5\x9e\xe2{m>\xdekx\xeef\xe4\x19\xdfk,%\xbb\xba\xc4\xa7\xaf<\xf3\xcd`_5\xdaj\xf35\x8c\xef\x1b\xc9x\x913\xcdh$\x85\x1b\xed\xec\x14|\xc3\x0cO\x98_\n\xc1\x81\x8cr(Wn\xc8}\x1b;\xad\x1b\xc5\xba&\xbfq$\x1au\xf4sJ\x8c\xe3`\xea\xc1H\x05\x87\xaa\xe4\xf5\xa2o\x16\xe9\x10G\xe6I%\xd7\x95\xbd\x93\xccK9\x9d\t\x0eS\xef*\x91\xf7\x86\x07<\xf1\xea+\xcf|\t\x06\xaa\x9a\xac\xdaQ\xd4\xe7\x8d\xe4\xb0\xb9e\x90\xc8X\x163\xa8\xf3\xbc\xb33\x80\xc7,A\xda\x9c\x93\xc3rj\x9d\xed\x93\xc9\xa6\xe8\xb1y>s\\i\xba|v\xeaV6fa3o\xc6\xf6\x07?:\xe7\x19\xff\x00k\x03\x9amh\x9fqug\xaa\x9f\x10\xe9\xc9b\xd7\x92=\xc40+\xec&kYc9\xc6~\xeb(8\xc7|b\x96\xcf_\xd3\xef\xda\xd8[\xbc\xc7\xed;\xbc\x93$\x0f\x18p\xa0\x12F\xe020\xc3\x07\xa1\xed\\\xa7\xd8n\xf4\xcf\x0c\xb5\xa4\xf0\xdfE=\xe5\xf3\xa5\xbc\x16\x92E\x19;\x90\xe07\xcd\xb4/\xcax\x06\x99\xe1\xc1$:\xb6\x8fe8\xbdK\x9b\x11-\xb4\xf1\xddJ\xae\x15\x84\x117\xc8T\x91\xb7\x0e)\x01\xda_j\xf6:d\x88\x97\x93\xf9%\xd1\xddK)\xc1\x082\xc0\x1cc8\xc9\xc7R\x01\xc0\xe0\xd5(\xfcW\xa4\xc9,q\x86\xbdC#\xa4j\xd2i\xf3\xa2\xeer\x02\x82\xcc\x80\x0c\x92\x00\xc9\xefX^/\xd4c\x8a\xdd.\x97T\xcd\x85\xe5\x95\xca\x88\xd8\xa7\x94H\x88\xed*q\xbb$\x9f_\xc2\xb9\xabr\x06\xbc\xdf\xbc\x1ed\xb7\x96\xe1\xd3\xb8\xf2\xaf!C\x91\xe6\x12\xb9/\xc6G8\xe3\x14\x01\xe8\xef\xe2=!d\xb8\x89o\x16Y\xad\xf3\xe6\xc5\x02\xb4\xb2.\x18)\xf9T\x12pH\x07\x03\x8a\x93N\xd6\xecuY\xe6\x82\xd5\xe6\xf3aUy\x12ky"!X\x90\xa7\x0e\xa3 \xedn\x9e\x86\xbc\xfa\xe2\xea\xda\xe2{\xed>;\xc8\x04\xe6=V\x19S%\xcca\xee\xe3\xe1\x95\x01a\x95\xce8\xae\x87\xc3\xda\x8d\xd5\xcf\x8a\xae^u\xb6e\xbd\xb5,\xad\x0f\x98\x0c~IA\xb4\x87U<\xf9\xc4\xe6\x80:\x1dO\\\xd34c\x00\xd4/a\xb7\xf3\xdc"y\x8e\x17\'\xd7\x9e\xdd9\xed\x91U\x1f\xc6>\x1c\x8e\xf9l\xdb\\\xd3\xc4\xa5X\xff\x00\xc7\xca`\x15 \x15\'<6ON\xbc\x1fJ\xc7\xf1\xeb\xde\x85\xd3\xe1\xb3\x95\xd0\xdd;[0KV\x94\xb0q\xf3c\x0e\xb8!C0\xe0\x9f\x97\x829\xae^\xf6\xefR\x8f\xc6P\xac\xb3O\xe6oh\xcd\xda]\xbcp\xc7\xbaH\x0e\xd2\x9c\xed\x18*\xa5rF]rx\xa0\x0fJ\x97_\xd2`\xbe6R\xea6\xc9t\xb9\xccM \x0c07t\xfasQ\xe9^$\xd25\xb9\x0cv\x17\xb1\xcb(\xde|\xb0~b\xaa\xdbKc\xfb\xb9\xc6\x0f\xa1\x1e\xb5\xcb\xf8\x9a\xe1\xbf\xe1*\x8e\xc2{\xe4\xfb\x1f\x95-\xd02p-\xe50I\x1a\xa360\x15\x81w\x19\xe7(\xde\xa2\x99\xe1\x8b\xc0\xba\xe5\x91\xdbo*H\x8dj\x86\xda\xecJ\xb11\x8c;\x921\xfcF\x10x\xc0\x1e\x99$\xd0\x07\xa0QP\xc1wmt\xd2\xad\xbd\xc42\xb4M\xb2A\x1b\x86(\xde\x87\x1d\rI,\xb1\xc3\x13\xcb+\xacq\xa0,\xce\xc7\x01@\xeaI\xed@\x0e\xa2\xa3\x82xnaI\xa0\x95%\x89\xc6U\xe3`\xca\xc3\xd8\x8e\xb4\xdb\x9b\xbbk5F\xba\xb8\x86\x05v\x08\xa6W\n\x19\x8f@3\xde\x80&\xa2\x8a\x84\xdd\xdb-\xda\xda\x1b\x88E\xcb.\xf1\tq\xbc\xaf\xae\xde\xb8\xa0\t\xa8\xa2\xa1\x82\xee\xda\xe9\xa5[{\x88eh\x9bd\x827\x0cQ\xbd\x0e:\x1a\x00\x9a\x8al\xb2\xc7\x0cO,\xae\xb1\xc6\x80\xb3;\x1c\x05\x03\xa9\'\xb56\t\xe1\xb9\x85&\x82T\x96\'\x19W\x8d\x83+\x0fb:\xd0\x04\x94QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00\x14QE\x00g\xb6\x89b\xfa\x89\xbex\x8bO\xe7,\xdc\xb9\xdb\xbdS`8\xe9\xc0?\xd6\xac[\xd9\xc3k-\xd4\xb1)\x0fs/\x9d)\'9m\xaa\x99\xf6\xe1\x16\x8a(\x03.O\x08\xe8\xb2\xc3k\x0b\xdbHR\xd5\xa5x\x80\x9eE\xc1\x91\xb7?!\x819>\xb5\x7fK\xd2\xac\xf4k?\xb2X\xc6\xd1\xc3\xe6<\x9bY\xd9\xce\xe6%\x89\xc9$\xf5&\x8a(\x07\xa8\xcdKF\xb6\xd5^#t\xf7\x068\xd87\x94\x932#\x90\xc1\x86\xe5\x07\xe6\xe4\x0e\xb5jkXn\x03\xefO\x99\xa31\x99\x14\xedp\xa7\xa8\x0c9\x1f\x81\xa2\x8a\x00\xac\x9a&\x9b\x1e\x9d\x0e\x9f\x1d\x9cik\x0b\xac\x91\xc6\x9cme`\xc1\xb29\xceFs\xdf\xbfZ\xafw\xe1}\x1a\xfe4\x8e\xf2\xc9n#G\x96EIX\xb2\x87\x90\xeef\x00\x9f\xbd\x92pz\xaeN1E\x14\x00i\xbe\x1a\xd3\xb4\x9b\xbf\xb4\xda\x9b\xdf3iLM}4\xab\x8f\xf7]\xc8\xfd*!\xe1\r\x14\xc7\x0cr\xdb<\xe9\x04k\x1c\x0b4\xce\xc2\x10\x00\x00\xa0\xce\x15\xb8\xfb\xc3\x07\xde\x8a(\x02I<3\xa7\xcfh\xb6\xb7\x06\xee\xe2\x14\x98L\x82k\xb9\x1c\xab\x00@\xc3\x16\xdd\x8eOz\x88xCG@|\xa8\xeeao8\xce\x1e+\xa9Q\xc3\x14T?0l\xe0\xaa\xa8\xc6q\xc5\x14P\x05\xa9\xbc=\xa4\xdci\xf6\xf62\xd9F\xf6\xf6\xf1\xf9P\xa9\xc9(\x98\x00\x80z\xf2\x06\x0f\xa8\xcez\x9a\x92\xf3G\xb3\xbe\x9e\xdeY\x91\xb3\x04\xa2P\x11\xca\x86`C)`>\xf6\x08\x04g\xb8\xa2\x8a\x00\xb3\x1d\xa5\xb4/\xbe+x\x91\xf2\xe7r\xa0\x07\xe6;\x9b\xf3<\x9fSU,tKK\x0b\xb9.\xe3k\x89n$]\x86K\x8b\x87\x94\x85\xcev\x8d\xc4\xe0g\xd2\x8a(\x02\xc4\x966\xf2\xdf\xc3{"\x16\x9e\x05e\x88\x968]\xddH\x1d3\x8e3\xd7\x19\x1d\xea\xb3h\x1ac\x80\xa6\xce?(C,\x06,|\x85$eg\xc8\xeeIPs\xf5\xa2\x8a\x00\xb1\x16\x9bg\x0bL\xc9n\x9b\xa6\x94L\xe5\x86\xe2\\\x00\x01\xe7\xd0(\xc7\xa68\xa6\x1d.\xdd\xb5A\xa8\xbbL\xf3\xa8"0\xd2\xb1H\xf20J\xaep\t\x1d\xf1\xeb\xeah\xa2\x80\x12\xc3I\xb5\xd3e\x9aKp\xfb\xa5\x01N\xf7-\xb5Ab\x14g\xa0\x05\xd8\xfe?J\xb1wk\x15\xf5\xa4\x96\xd3\x82c\x90`\xe0\x90~\xa0\x8e\x86\x8a(\x01\xb6VqXZ\x8bxw\x15\x0c\xceK\xb6K31f$\xfa\x92I\xfcj\x1dOI\xb5\xd5\xa3X\xee\x83\xe1C\x0f\x91\xca\xe5Xa\x94\xe3\xb1\x1c\x1a(\xa0\x0b\xd5E\xb4\x9bW\xd5\x13Q!\xfc\xe5;\x80\xdev\xee\nT6=v\xb3\x0f\xc7\xe9E\x14\x01z\xa8\xd8i6\xbal\xb3In\x1ft\xa0)\xde\xe5\xb6\xa8,B\x8c\xf4\x00\xbb\x1f\xc7\xe9E\x14\x01b\xee\xd6+\xebI-\xa7\x04\xc7 \xc1\xc1 \xfdA\x1d\r6\xca\xce+\x0bQo\x0e\xe2\xa1\x99\xc9v\xc9ff,\xc4\x9fRI?\x8d\x14P\x05\x8a(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80\n(\xa2\x80?\xff\xd9'
    

    4.4.4 如何看到图片呢?

    from PIL import Image
    im = Image.open('评论信息/76936090/39018468.jpg')
    im.show() # show完之后会新打开一个窗口 显示图片的内容
    

    4.4.5 单独测试看图片的内容

    4.4.5.1 单个文字

    image = get_file_content('评论信息/76936090/39018468.jpg')
    tag1 = client.basicGeneral(image, options)
    tag1
    
    {'log_id': 6412010709116467009,
     'words_result': [{'words': '价格可以随便乱调吗辣'}],
     'words_result_num': 1}
    
    tag1['words_result'][0]['words']
    
    '价格可以随便乱调吗辣'
    

    4.4.5.2 多文字

    image = get_file_content('评论信息/83588699/50366237.jpg')
    tag2 = client.basicGeneral(image, options)
    tag2 
    
    {'log_id': 4713844365475263073,
     'words_result': [{'words': '招牌挺文艺小清新的不知道为什么没人拍过来'},
      {'words': '这家有瘦肉丸卤味啊盖浇饭这些'},
      {'words': '点了瘦肉丸挺好吃的肉没有添加剂的味道还不错的'},
      {'words': '打包了鸭骨架老板还贴心的给切成块味道也很好'},
      {'words': '尤其是酱油醋很好吃'},
      {'words': '就在新城那个叫什么源路的贝贝佳对面门面有点小但是仔细看不会错过的'},
      {'words': '收起评论入'}],
     'words_result_num': 7}
    
    im2 = Image.open('评论信息/83588699/50366237.jpg')
    im2.show() # show完发现评论是有多行的 所以根据这个API调用是一行一行的解析 并存储
    
    for i in range(len(tag2['words_result'])):
        print(tag2['words_result'][i]['words'])
    
    招牌挺文艺小清新的不知道为什么没人拍过来
    这家有瘦肉丸卤味啊盖浇饭这些
    点了瘦肉丸挺好吃的肉没有添加剂的味道还不错的
    打包了鸭骨架老板还贴心的给切成块味道也很好
    尤其是酱油醋很好吃
    就在新城那个叫什么源路的贝贝佳对面门面有点小但是仔细看不会错过的
    收起评论入
    

    结论:

    • 可以看到返回的是一个字典,然后针对单个文字以及多文字的时候得采用不同的方式
    • 多文字的时候得进行一个循环遍历所有的评论 然后拼接起来 这是一个坑!之前就是不清楚的!所以会发现,诶,评论为啥是不全的!所以还是得深入的了解到数据结构!要知道返回的结果是啥!

    4.5 批量的去转图片为文字,并且存在数据框里

    思路:

    • 方法还是上面单个测试的一样,但得需要新增两部分,也就是读取图片 + 存储到数据框的部分
    • 读取图片:进行一个循环遍历即可!

    步骤:

    1. 遍历每一个文件夹 然后对文件夹下面的图片做转换
    2. 由于原来是形成一个字典 最后再形成数据框 现在估计这样够呛了 每次一个文件夹内转完就形成一个数据框 最后合并起来
    3. 这样每次就都定义一个新的空的字典
    4. 同时多加一列:商户号 最后再添加,先增加每一行都不一样的内容,最后再增加所有的!都是这个思路
    5. 定义一个空列表 用来存放每一个商户的三列信息

    合理避坑:

    • 就是注意mac会出现那个啥’.DS_Store’ 所以先把这个给排除掉
    • 注意区分continue和break
    # 读取评论信息下面所有文件夹的名称
    mer_folds = os.listdir('./评论信息/')
    
    comment_dp = []
    t0_all = time.time()
    
    for i in range(0, len(mer_folds)):
    
        fold = mer_folds[i]
    
        print('正在转换第 %d 个商家' % (i+1))
        t0 = time.time()
        # 定义一个空的字典 用来存放图片名称+转换后文字的内容
        image_tag = {}
        # 定位到某一商户对应的所有评论信息图片的文件夹里面
        if fold == '.DS_Store':
            continue
        else:
            pics = os.listdir('./评论信息_补充/' + str(fold))
            for pic in pics:
                # 针对mac系统的隐藏文件
                if pic == '.DS_Store':
                    continue
                else:
                # 遍历某一商户下所有图片
                    print('正在转换商家 %s 评论图片: %s' % (fold, pic))
                    try:
                        image = get_file_content('./评论信息_补充/' + str(fold) + '/' + str(pic))
                        tag = client.basicGeneral(image, options)
                        # 先定义一个空的字符 用于后面的拼接
                        comments = ''
                        # 进行判断 如果只识别出一个来 就直接赋值
                        if tag['words_result_num'] == 1:
                            image_tag[pic] = tag['words_result'][0]['words']
                        # 如果不止一个 进行循环 然后拼接评论
                        else:
                            for i in range(tag['words_result_num']):
                                comments = comments + tag['words_result'][i]['words'] + ' '
                            image_tag[pic] = comments
    
                        time.sleep(1)
                    except Exception as e:
                        print('报错信息为: ', e)
          
    
        # 此时一个商家的图片全部转换ok
        t1 = time.time()
        print('点评商家 %s 所有评论图片转换完毕, 所需时间为 %.2f s' % (str(fold), (t1 - t0)))
        # 先把这部分数据给存起来 形成数据框
        a = []
        b = []
        for k,v in image_tag.items():
            a.append(k)
            b.append(v)
        y = pd.DataFrame({
            '点评评论截图名称':a,
            '百度识别评论结果':b
        })
        y['商户号'] = fold
        comment_dp.append(y)
        
        # else:
        #     break
    
    # 输出所有的信息
    comment_dp_pd = pd.concat(comment_dp, axis=0)
    comment_dp_pd.to_csv('大众点评评论图片转文字结果.csv', encoding = 'utf-8', index = False, quoting = 1)
    
    t1_all = time.time()
    print('点评全部评论图片转换完毕,所需时间为 %.2f s' % (t1_all - t0_all))
    
    正在转换商家 76936090 评论图片: 39018468.jpg
    点评商家 76936090 所有评论图片转换完毕, 所需时间为 3.30 s
    正在转换商家 23060131 评论图片: 428069809.jpg
    正在转换商家 23060131 评论图片: 47855114.jpg
    正在转换商家 23060131 评论图片: 812661193.jpg
    正在转换商家 23060131 评论图片: 752038273.jpg
    正在转换商家 23060131 评论图片: 54695934.jpg
    正在转换商家 23060131 评论图片: 859952667.jpg
    正在转换商家 23060131 评论图片: 113265168.jpg
    正在转换商家 23060131 评论图片: 753526276.jpg
    点评商家 23060131 所有评论图片转换完毕, 所需时间为 14.83 s
    正在转换商家 66264063 评论图片: 19590086.jpg
    正在转换商家 66264063 评论图片: 189696824.jpg
    正在转换商家 66264063 评论图片: 776797215.jpg
    正在转换商家 66264063 评论图片: 52339564.jpg
    正在转换商家 66264063 评论图片: 980002346.jpg
    正在转换商家 66264063 评论图片: 756204408.jpg
    正在转换商家 66264063 评论图片: 812438020.jpg
    正在转换商家 66264063 评论图片: 177743748.jpg
    点评商家 66264063 所有评论图片转换完毕, 所需时间为 13.74 s
    正在转换商家 95358955 评论图片: 25910563.jpg
    点评商家 95358955 所有评论图片转换完毕, 所需时间为 1.54 s
    点评全部评论图片转换完毕,所需时间为 33.41 s
    

    5 封装成函数

    def PicToText(dir):
        # dir参数为照片存放的文件夹
        
        # 读取评论信息下面所有文件夹的名称
        mer_folds = os.listdir(dir)
    
        comment_dp = []
        t0_all = time.time()
    
        for i in range(0, len(mer_folds)):
    
            fold = mer_folds[i]
    
            print('正在转换第 %d 个商家' % (i+1))
            t0 = time.time()
            # 定义一个空的字典 用来存放图片名称+转换后文字的内容
            image_tag = {}
            # 定位到某一商户对应的所有评论信息图片的文件夹里面
            if fold == '.DS_Store':
                continue
            else:
                pics = os.listdir(dir + str(fold))
                for pic in pics:
                    # 针对mac系统的隐藏文件
                    if pic == '.DS_Store':
                        continue
                    else:
                    # 遍历某一商户下所有图片
                        print('正在转换商家 %s 评论图片: %s' % (fold, pic))
                        try:
                            image = get_file_content(dir + str(fold) + '/' + str(pic))
                            tag = client.basicGeneral(image, options)
                            # 先定义一个空的字符 用于后面的拼接
                            comments = ''
                            # 进行判断 如果只识别出一个来 就直接赋值
                            if tag['words_result_num'] == 1:
                                image_tag[pic] = tag['words_result'][0]['words']
                            # 如果不止一个 进行循环 然后拼接评论
                            else:
                                for i in range(tag['words_result_num']):
                                    comments = comments + tag['words_result'][i]['words'] + ' '
                                image_tag[pic] = comments
    
                            time.sleep(1)
                        except Exception as e:
                            print('报错信息为: ', e)
    
    
            # 此时一个商家的图片全部转换ok
            t1 = time.time()
            print('点评商家 %s 所有评论图片转换完毕, 所需时间为 %.2f s' % (str(fold), (t1 - t0)))
            # 先把这部分数据给存起来 形成数据框
            a = []
            b = []
            for k,v in image_tag.items():
                a.append(k)
                b.append(v)
            y = pd.DataFrame({
                '点评评论截图名称':a,
                '百度识别评论结果':b
            })
            y['商户号'] = fold
            comment_dp.append(y)
    
            # else:
            #     break
    
        # 输出所有的信息
        comment_dp_pd = pd.concat(comment_dp, axis=0)
        comment_dp_pd.to_csv('大众点评评论图片转文字结果.csv', encoding = 'utf-8', index = False, quoting = 1)
    
        t1_all = time.time()
        print('点评全部评论图片转换完毕,所需时间为 %.2f s' % (t1_all - t0_all))
        return comment_dp_pd
    
    # 只要加一个参数-文件夹路径即可!
    PicToText('评论信息')
    

    6 总结

    • 上述代码可以实现批量的从图片转为文字(调用百度云API接口),并且形成一个数据框,以供进行后续的分析
    • 读入图片的函数 get_file_content
    展开全文
  • 如何快速将图片中的文字提取出来---图文OCR 墙裂推荐一款免费好用的可以从图片提取文字的小程序! 微信搜索图文OCR或者用微信扫下面的小程序二维码,就可以找到并使用了。 该小程序可以一键选择你想要提取...

    如何快速将图片中的文字提取出来---图转文OCR

    墙裂推荐一款免费好用的可以从图片提取文字的小程序

    微信搜索图转文OCR或者用微信扫下面的小程序二维码,就可以找到并使用了。

    该小程序可以一键选择你想要提取文字的图片,提取出的文字还支持在线编辑、文字查询替换、一键复制、分享给朋友,真真是能提升了我的办公速度!

    最最关键的是还完全免费,良心之作,遇到问题还可以联系在线客服,耐心解答。墙裂推荐大家哦,如果你也觉得好用的话欢迎点赞!!

    1. 打开微信,搜索小程序图转文OCR,也可以直接用微信扫下面的二维码,打开小程序。

                   搜索小程序

     

                 小程序二维码

     

    2. 选取要识别的图片。小程序支持三种图片选择方式,(1)点击立即识别,可以即刻拍照;(2)点击相册图片可以从手机相册中选取图片;(3)点击聊天图片,可以从微信聊天记录中选取图片。

    3. 图片文字提取。默认识别语言为中英文混合,可以点击切换识别语言,支持中英文混合、英文、日语、韩语、法语和西班牙语。选好要识别的语言后,点击识别按钮,即可提取图片中的文字。

    4. 识别结果。识别结果上半部分为要识别的图片,可以滚动查看全部图片;下半部分为提取的文字。点击中间部分的上三角^可以折叠隐藏图片。可以在线编辑识别文字,一键复制结果文字,查找替换识别结果中的文字。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 448,095
精华内容 179,238
关键字:

怎么将图片里的文字转出来