• Tesseract OCR集成Android Studio实现OCR识别介绍Tesseract OCR谷歌开源的OCR识别引擎,支持多国文字包括中文简体与繁体。最新的版本是3.x。可以通过安装程序安装在机器上然后通过命令行运行该程序识别各种图片中的...

    Tesseract OCR集成Android Studio实现OCR识别

    介绍

    Tesseract OCR谷歌开源的OCR识别引擎,支持多国文字包括中文简体与繁体。最新的版本是3.x。可以通过安装程序安装在机器上然后通过命令行运行该程序识别各种图片中的文字、同时还提供二次开发包,支持二次开发包括C、C++语言。也可以被移植到Android平台实现移动应用领域的OCR识别APP。

    下载

    在Android平台上使用Tesseract OCR首先要下载Tess2工程,它是专门针对Android平台编译出来的,下载地址如下 - https://github.com/rmtheis/tess-two 。下载解压缩之后你就会看到如下目录结构:
    这里写图片描述
    然后打开Android Studio新建一个项目应用,选择导入Module之后选择导入红色圆圈中的tess-two文件夹,导入之后你就会看到如下:
    这里写图片描述
    项目必须是支持NDK的,所以要在Project Structure中指明NDK的路径。原因是tess-two是个NDK项目,没有NDK支持无法完成编译。
    这里写图片描述
    此外你可能还会遇到没有android-maven的错误,把下面的脚本加到build.gradle的最上面即可:

    buildscript { 
    repositories {
    jcenter()
    }
    dependencies {
    classpath ‘com.android.tools.build:gradle:2.1.2’
    classpath ‘org.codehaus.groovy:groovy-backports-compat23:2.3.5’
    classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0’
    classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.5’
    }
    }
    如果一切顺利,你就会完成导入与编译,看到导入成功的目录结构,上图第二张所示。下面就是在你的Activity中添加初始化代码如下:
        private void initTessBaseData() { 
    mTess = new TessBaseAPI();
    String datapath = Environment.getExternalStorageDirectory() + “/tesseract/”;
    // String language = “num”;
    String language = “eng”;
    File dir = new File(datapath + “tessdata/”);
    if (!dir.exists())
    dir.mkdirs();
    mTess.init(datapath, language);
    }
    然后通过监听【识别】按钮的Click事件响应识别动作如下:
        public void onClick(View v) { 
    Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.textimage);
    mTess.setImage(bitmap);
    String result = mTess.getUTF8Text();
    TextView txtView = (TextView)this.findViewById(R.id.idCard_textView);
    txtView.setText(“结果为:” + result);
    ImageView imgView = (ImageView)this.findViewById(R.id.imageView);
    imgView.setImageBitmap(bitmap);
    }
    显示结果如下:
    这里写图片描述
    其中上部分为识别到文字显示,下面是对应加载的文字图片。
    这里特别要注意的是必须在你对应目录有相关tessdata文件才可以,关于tessdata可以到如下地址下载:
    https://github.com/tesseract-ocr/tessdata
    手动或者通过程序Copy到你在初始化时候生成的目录下面即可。
    此外,还不要忘记把tess-two作为依赖添加到app中去。

    展开全文
  • Android-ocr源码

    2020-06-03 23:32:04
    Android-ocr是由Android Studio开发的,本人亲测代码没问题,但是运行起来识别时候程序闪退,目测网上所有android-ocr都失效了,代码完全正确就是不能识别,我也不知道为什么
  • OCR识别API调用方式demo,阿里云平台上第三方OCR文字识别服务、腾讯云官方OCR文字识别服务
  • 最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进...

            最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进。

    tesseract-ocr和Leptonica图像库一起工作,它可以读取多种图像格式,并将其转换成超过60种语言的文本。可以工作在Linux,Windows,Mac OSX等系统上,并且可以在android和iphone平台上编译。

    目前android版本在这个地址:https://code.google.com/p/tesseract-android-tools/, 这个版本需要自己下载很多关联的库文件,我在编译的时候出了很多问题,后来没办法又在网上找到了这个项目:https://github.com/rmtheis/tess-two,说是tesseract-ocr-tool的一个分支,这个版本的好处是很多相关的库都已经为我们配置好了,我们只要git clone下来编译下就行了,github上相关介绍说的很详细,编译的过程这里就不做介绍了,我在编译的时候出现了permission权限的问题,文件的权限用chmod 777  ./  这个命令修改下就Ok了。最后编译好的在libs下的so文件就是我们开发所需要的库文件。

    android中tesseract-ocr的使用在tess-two这个项目中有例子程序,不过写的都比较简单,这里有个开源的识别项目,做的很好:https://github.com/rmtheis/android-ocr, 我借鉴的就是这个项目来开发的,但是用过后发现,对于身份证识别的效果并不好,识别率不是很高,而且经常识别不出来。OCR用到的识别库:https://code.google.com/p/tesseract-ocr/downloads/list,其实我们可以根据自己的需求来训练一套自己的识别库的,比方说我们要识别验证码,识别身份证号码等,我们就可以用下面的方法来训练一套识别库。

    网上关于OCR训练的方法很多,http://my.oschina.net/lixinspace/blog/60124, http://blog.wudilabs.org/entry/f25efc5f/这两篇文章都是比较好的教程,我也是参照这两篇文章来训练的,下面结合我的操作经验来说下训练的过程。

    首先我们需要下面几个工具:

    tesseract-ocr-3.01, 最新版的3.02我在我机器上用了有点问题

    jTessBoxEditor, 该工具是用java写的box编辑器

    1、先新建一个trainocr文件夹,将上面两个文件拷贝进来,然后解压这两个文件,我们进入Tesseract-ocr文件夹下新建一个temp文件夹

    2、接下来我们准备好我们需要训练的素材如下图

    要想提高识别率,我们需要提供多张像上面这样的图片,我训练身份证号码识别库是用了50多张图片,等训练完了我眼睛也花了,图片格式需要为tiff格式的,可以通过windows自带的画图工具来另存为tiff格式,准备好多张图tiff图片后,打开jTessBoxEditor.jar,如下图

    在此之前我们需要在第1步建立的temp文件夹下新建一个custom.tif的文件,接下来我们选择tool–>Merge TIFF 然后选择准备好的多张tiff图片,注意这里是全部选中,然后点击打开,然后选中我们刚刚建立的custom.tif文件,点击保存,这样我们就将多张tiff图片merge到了一个文件里面了。

    3、接下来我们开始生成box文件了,cmd命令行进入temp文件夹下,然后输入如下命令

    D:\Trainocr\Tesseract-ocr\temp>..\tesseract.exe custom.tif custom batch.nochop makebox

    输入完后会在temp文件夹下多了个custom.box文件,该文件记录了识别出来的每个字和它对应的位置坐标。

    4、接下来就开始矫正了,同样使用jTessBoxEditor工具,我们切换到Box Editor,然后open打开custom.tif,如图

    通过右上角的X,Y,W,H对每个需要改正的字符进行调整,注意调整好后别忘记保存。

    5、接下来是计算字符集,输入如下命令

    D:\Trainocr\Tesseract-ocr\temp>..\unicharset_extractor.exe custom.box

    6、接下来我们需要在temp文件夹下建一个font_properties文件,3.01版本的OCR需要这个文件,该文件的目的是提供输出时识别出来的字体样式信息,文件的格式为

    <fontname> <italic> <bold> <fixed> <serif> <fraktur>

    timesitalic 1 0 0 1 0

    我们可以根据实际情况新建font_properties,我写的是

    custom 0 0 0 0 0

    意思是普通字体,没有任何格式。

    然后执行以下命令

    D:\Trainocr\Tesseract-ocr\temp>..\mftraining.exe -F font_properties -U unicharset custom.tr

    7、Clustering,输入命令

    D:\Trainocr\Tesseract-ocr\temp>..\cntraining.exe custom.tr

    8、此时在temp文件夹下已经有很多文件了,需要把inttemp,Microfeat,normproto,pffmtable,unicharset这几个文件加上前缀custom. (注意有个点号),然后输入以下命令

    D:\Trainocr\Tesseract-ocr\temp>..\combine_tessdata.exe custom.

    出来的结果中我们需要确定type 1,type3, type4, type5对应的后面数据不能为-1,这样我们就可以用这个新字典来识别了,将生成的custom.traineddata文件拷贝到tessdata文件夹下,然后

    tesseract test.jpg result | custom

    就可以通过新的字典来识别,测试结果表明,识别率确实提高了。现实应用中我们需要使用多张图片来通过上面的步骤来生成我们需要的识别库,这样识别率才能提高。

    展开全文
  • AndroidOCR实现

    2013-03-20 23:02:57
    光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程 2. 典型应用: 名片扫描 3. android源码实现: external/tesseract/* 4. ...
    1.
    功能:
    光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程
    2.
    典型应用:
    名片扫描
    3.
    android源码实现:
    external/tesseract/*
    4.
    编译:
    $ cd external/tesseract/
    $ mm
    生成libocr.so,push系统/system/lib/中,它也可以放在软件的安装包里
    5.
    例程下载:
    2)
    直接下载apk是能用的, 在源码中编译程序运行就退出,是由于可能libocr.so未安装, 把它push到系统中即可
    $ adb push libocr.so /data/data/com.itwizard.mezzofanti/lib/
    3)
    主要借鉴OCR.java它是对libocr.so库的调用(JNI方式)
    展开全文
  • OCR开发包适用于名片、卡片、杂志和报纸期刊等各种复杂版面上的文字识别,也同样适用于扫描文档等一般文档类版面的识别工作,支持中、日、韩、英、法、德、意、俄、西 班牙、葡萄牙等共计70门语言,服务于世界各国的...
  • Android手机车牌识别OCR

    2016-12-25 20:05:22
    Android手机车牌识别OCR  OCR技术简介及发展  OCR的概念是在1929年由德国科学家Tausheck最先提出来,并申请了专利。后来美国科学家Handel也提出了利用技术对文字进行识别的想法。中国最早的OCR商业应用是由科学...
    Android手机车牌识别OCR
    

      OCR技术简介及发展

      OCR的概念是在1929年由德国科学家Tausheck最先提出来,并申请了专利。后来美国科学家Handel也提出了利用技术对文字进行识别的想法。中国最早的OCR商业应用是由科学家王庆人教授在南开大学开发出来的,并在美国市场投入商业使用。OCR识别过程主要包括:图像输入、图像前处理、预识别;二值化;噪声去除;倾斜校正;版面分析;字符切割;字符识别;版面还原;后处理、校对。

      OCR的概念是在1929年由德国科学家Tausheck最先提出来,并申请了专利。后来美国科学家Handel也提出了利用技术对文字进行识别的想法。中国最早的OCR商业应用是由科学家王庆人教授在南开大学开发出来的,并在美国市场投入商业使用。OCR识别过程主要包括:图像输入、图像前处理、预识别;二值化;噪声去除;倾斜校正;版面分析;字符切割;字符识别;版面还原;后处理、校对。

      Android手机车牌识别OCR应用背景

      随着机动车辆的大幅度增加,在带动国民经济发展的同时,也给中国道路交通带来了众多的烦恼,机动车违法、违章行为是造成交通事故和影响正常交通秩序的主要原因之一;停车难,停车场管理需要更加智能高效的管理方式。而车牌号码作为车辆唯一身份证,它的特殊性与重要性成为智能交通系统不可或缺的重要组成部分。那如何快速录入这些车牌号码呢?小编今天就问您支一招。

    Android手机车牌识别OCR

      Android手机车牌识别OCR技术是文通科技自主研发的车牌识别SDK,在智能交通系统、出入口管理系统、公安图帧系统、移动警务系统等多种行业都已实现成功运用。Android手机车牌识别OCR技术SDK采用清华OCR技术,融合了车牌定位、车牌字符切分、车牌字符识别等算法,使该系统具有识别效率高、速度快、适应性强、使用方便等优势,技术处于国际先进水平,在相关行业领域得到用户的广泛好评。 Android手机车牌识别OCR技术SDK目前可应用于Windows、Linux、ARM、DSP、ADI、WIN CE、Android等多种平台,是现在国内市场上支持平台种类最多的车牌识别SDK。 Android手机车牌识别OCR技术SDK支持图片和视频流两种识别模式,可用于多种场景,适应性极强。

      Android手机车牌识别OCR技术技术核心

    • 1、国家重点实验室:智能图文图像处理实验室;

    • 2、1985年清华大学电子工程系综合集成汉字识别系统研究;

    • 3、 学术带头人: 吴佑寿院士、丁晓青教授;

    • 4、2005年开始车牌识别算法研发,是国内最早一批从事车牌识别算法研发的公司;

    Android手机车牌识别OCR技术-演示demo

      Android手机车牌识别OCR技术技术优势

    • 1、北京文通现有超过30人的车牌识别研发团队;

    • 2、依托文通公司TH-OCR识别核心,车牌识别率遥遥领先业内其他公司;

    • 3、持续的产品升级服务,文通车牌识别SDK会定期更新版本,优化内容,为客户提供更好的使用体验;

    • 4、多样化的特征识别,除了能识别车牌号码外,更能识别车牌颜色、车身颜色、车标类型等车辆特征信息。

    • 5、业内支持平台数量最多的车牌识别算法,满足客户更广泛的业务需求。

    Android手机车牌识别OCR技术-识别效果

      Android手机车牌识别OCR技术服务优势

    • 1、文通公司针对客户需求,从售前、售中、售后提供完善的服务内容,提升客户使用产品感受;

    • 2、针对客户不同的使用平台,文通公司安排技术人员进行技术支持工作,能够更快的解决客户使用过程中遇到的问题;

    • 3、 文通车牌识别算法目前市场占有率第一,在多个行业、多个项目有过成功应用,业内口碑最高;

    • 4、 2005年开始车牌识别算法研发,是国内最早一批从事车牌识别算法研发的公司;

      Android手机车牌识别OCR技术系统优点

    • 1、 整车识别率高:白天识别率≥99.7,夜间识别率≥98%;

    • 2、识别速度快:极致优化的车牌定位和识别算法,识别时间≤50毫秒(200万图片);

    • 3、文通车牌识别算法目前市场占有率第一,在多个行业、多个项目有过成功应用,业内口碑最高;

    • 4、支持牌照全:普通蓝牌、普通黄牌(单层)、双层黄牌、新式军车车牌、新式武警车牌、使馆车牌、农用车牌等各种规格汽车号牌;

    • 5、 车牌宽度要求低:60-400像素宽度均可识别;

    • 6、纯C编写,跨平台应用灵活;

    • 7、 售后服务完善;

    • 8、 专注于车牌识别SDK的研发:文通是专业的OCR产品技术厂商。

      Android手机车牌识别OCR技术规格参数

    车牌识别SDK规格参数(PC平台)  

      产品形态

      加密锁、车牌识别SDK开发包、开发文档

      识别类型

      标清、高清图片/视频;可识别1路、2路、4路、8路、18路及更多

      支持的调用例程

      C#、DELPHI、VB、VC++、JAVA

      识别率

      白天识别率≥99.7%;夜间识别率≥98%

      识别速度

      单张图片识别时间≤50毫秒(200万图像)

      像素宽度

      60-400像素宽度

      特征识别

      车牌颜色、车标类型、车身颜色

      车牌类型

      普通蓝牌、普通黄牌(单层)、双层黄牌、新式军车车牌、新式武警车牌、使馆车牌、农用车牌等各种规格汽车号牌

      运行环境

      Windows xp 、windows2000、windows2003、windows7、linux

      运营人员 谢常胜 微信[13829771132]文章转载之前须联系本人,谢谢!

    展开全文
  • Android OCR文字识别

    2020-07-10 23:31:02
    这是修改后的资源,app为第三方百度云识别,assets目录下的文件需要自己获取;app2为本地识别,亲测可用!
  • 最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进...

           最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进。

    tesseract-ocr和Leptonica图像库一起工作,它可以读取多种图像格式,并将其转换成超过60种语言的文本。可以工作在Linux,Windows,Mac OSX等系统上,并且可以在android和iphone平台上编译。

    目前android版本在这个地址:https://code.google.com/p/tesseract-android-tools/, 这个版本需要自己下载很多关联的库文件,我在编译的时候出了很多问题,后来没办法又在网上找到了这个项目:https://github.com/rmtheis/tess-two,说是tesseract-ocr-tool的一个分支,这个版本的好处是很多相关的库都已经为我们配置好了,我们只要git clone下来编译下就行了,github上相关介绍说的很详细,编译的过程这里就不做介绍了,我在编译的时候出现了permission权限的问题,文件的权限用chmod 777  ./  这个命令修改下就Ok了。最后编译好的在libs下的so文件就是我们开发所需要的库文件。

    android中tesseract-ocr的使用在tess-two这个项目中有例子程序,不过写的都比较简单,这里有个开源的识别项目,做的很好:https://github.com/rmtheis/android-ocr, 我借鉴的就是这个项目来开发的,但是用过后发现,对于身份证识别的效果并不好,识别率不是很高,而且经常识别不出来。OCR用到的识别库:https://code.google.com/p/tesseract-ocr/downloads/list,其实我们可以根据自己的需求来训练一套自己的识别库的,比方说我们要识别验证码,识别身份证号码等,我们就可以用下面的方法来训练一套识别库。

    网上关于OCR训练的方法很多,http://my.oschina.net/lixinspace/blog/60124, http://blog.wudilabs.org/entry/f25efc5f/这两篇文章都是比较好的教程,我也是参照这两篇文章来训练的,下面结合我的操作经验来说下训练的过程。

    首先我们需要下面几个工具:

    tesseract-ocr-3.01, 最新版的3.02我在我机器上用了有点问题

    jTessBoxEditor, 该工具是用java写的box编辑器


    1、先新建一个trainocr文件夹,将上面两个文件拷贝进来,然后解压这两个文件,我们进入Tesseract-ocr文件夹下新建一个temp文件夹

    2、接下来我们准备好我们需要训练的素材如下图

    要想提高识别率,我们需要提供多张像上面这样的图片,我训练身份证号码识别库是用了50多张图片,等训练完了我眼睛也花了,图片格式需要为tiff格式的,可以通过windows自带的画图工具来另存为tiff格式,准备好多张图tiff图片后,打开jTessBoxEditor.jar,如下图


    在此之前我们需要在第1步建立的temp文件夹下新建一个custom.tif的文件,接下来我们选择tool–>Merge TIFF 然后选择准备好的多张tiff图片,注意这里是全部选中,然后点击打开,然后选中我们刚刚建立的custom.tif文件,点击保存,这样我们就将多张tiff图片merge到了一个文件里面了。


    3、接下来我们开始生成box文件了,cmd命令行进入temp文件夹下,然后输入如下命令

    D:\Trainocr\Tesseract-ocr\temp>..\tesseract.exe custom.tif custom batch.nochop makebox

    输入完后会在temp文件夹下多了个custom.box文件,该文件记录了识别出来的每个字和它对应的位置坐标。


    4、接下来就开始矫正了,同样使用jTessBoxEditor工具,我们切换到Box Editor,然后open打开custom.tif,如图

    通过右上角的X,Y,W,H对每个需要改正的字符进行调整,注意调整好后别忘记保存。


    5、接下来是计算字符集,输入如下命令

    D:\Trainocr\Tesseract-ocr\temp>..\unicharset_extractor.exe custom.box

    6、接下来我们需要在temp文件夹下建一个font_properties文件,3.01版本的OCR需要这个文件,该文件的目的是提供输出时识别出来的字体样式信息,文件的格式为

    <fontname> <italic> <bold> <fixed> <serif> <fraktur>

    timesitalic 1 0 0 1 0

    我们可以根据实际情况新建font_properties,我写的是

    custom 0 0 0 0 0

    意思是普通字体,没有任何格式。

    然后执行以下命令

    D:\Trainocr\Tesseract-ocr\temp>..\mftraining.exe -F font_properties -U unicharset custom.tr


    7、Clustering,输入命令

    D:\Trainocr\Tesseract-ocr\temp>..\cntraining.exe custom.tr


    8、此时在temp文件夹下已经有很多文件了,需要把inttemp,Microfeat,normproto,pffmtable,unicharset这几个文件加上前缀custom. (注意有个点号),然后输入以下命令

    D:\Trainocr\Tesseract-ocr\temp>..\combine_tessdata.exe custom.


    出来的结果中我们需要确定type 1,type3, type4, type5对应的后面数据不能为-1,这样我们就可以用这个新字典来识别了,将生成的custom.traineddata文件拷贝到tessdata文件夹下,然后

    tesseract test.jpg result | custom  就可以通过新的字典来识别,测试结果表明,识别率确实提高了。现实应用中我们需要使用多张图片来通过上面的步骤来生成我们需要的识别库,这样识别率才能提高。


                                                                                                   

    展开全文
  • OCR识别的Android端实现

    2019-07-31 06:49:45
    1.OCR简介OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如...2.Tesseract简介Tesseract是Ray Smith于1985到1995年间在惠普布里斯托实验室开发的一个OCR引擎,曾经在1995 UNLV精确度测试中...
  • 【转载注明出处:360个人图书馆>UNIVERSSKY>浅析android OCR文字识别 】   这学期有门课程老师要求用JAVA实现一个OCR文字识别的程序,所以就花了一些时间研究了一下在安卓端如何实现 OCR的引擎是用的开源项目...
  • 最开始我直接在主线程new了一个TessBaseAPI()结果报错,然后...或者给个在android studio上写的OCR的demo,因为我下载的eclipse的OCR的demo都不行啊,都是闪退的。至今还没有找到一个能在手机上运行的。。。求告知。。
  • 公文OCR开发包软件

    2018-04-28 18:06:48
    公文OCR开发包软件关键词:OCR SDK 12.0 公文识别开发包 档案识别SDK 日文识别OCR 韩文OCR识别 英文识别 藏文识别 维文识别 公文OCR开发包软件简介 公文OCR开发包软件V12.0是一种光学字符识别(OCR)软件开发...
  • 今天尝试在Android平台中接入腾讯的文字识别,看到文档中也提供了相应的JAVA SDK,于是二话没说就开始引入来尝试实现一次接口的调用。当点击运行的时候才发现没那么简单,直接报错DatatypeConverter类找不到,其实...
  • OpenCV &amp;amp;&amp;amp; Tesseract-OCR in Android Studio 藏文软件紧缺,而且少的很可怜。有些仅仅有着藏文科技公司的名字,不实惠藏族同胞。...Android Studio 安卓开发工具,被墙了下面是国内地址 h...
  • 最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进...
  • 本人从事多年金融行业,参与过多家银行设备WOSA驱动开发,建行STM,华夏银行VTM,上海银行VTM与ITM等。 可以快速进行读卡器、发卡器、二代证、密码键盘、打印机、激光打印机、凭条/发票打印机、高拍仪等部件的SP...
  • 档案OCR识别SDK开发

    2018-04-28 18:06:20
    档案OCR识别SDK软件简介 档案OCR识别SDK软件V12.0是一种光学字符识别(OCR)软件开发包(OCR SDK);OCR SDK12.0为软件开发人员、系统集成商、数据加工商(BPO)、扫描仪、多功能一体机等硬件制造商(OEM),提供...
1 2 3 4 5 ... 20
收藏数 3,581
精华内容 1,432
热门标签