精华内容
下载资源
问答
  • 很多小伙伴不知道IOS是自带文档扫描工具的。多数文档扫描需求都是通过appstore下载app来进行满足,而这些app除了扫描效果不理想外,部分app还会额外收费。今天小编就教大家如何用IOS自带功能进行文档扫描。 打开一个...

    很多小伙伴不知道IOS是自带文档扫描工具的。多数文档扫描需求都是通过appstore下载app来进行满足,而这些app除了扫描效果不理想外,部分app还会额外收费。今天小编就教大家如何用IOS自带功能进行文档扫描。

    打开一个备忘录或创建新备忘录。
    轻点相机按钮 ,然后轻点“扫描文稿”。
    在这里插入图片描述
    将文稿置于设备相机的取景框内。
    如果设备处于自动模式,则会自动扫描文稿。如果您需要手动进行扫描,请轻点拍照按钮或任一音量按钮。
    拖动各个角,将扫描范围调整到适合页面大小,然后轻点“继续扫描”。
    完成后,您还可以向文稿中添加更多扫描内容或轻点“存储”。
    怎么样?你学会了吗?这种方法是不是更为便捷高效呢?

    展开全文
  • 文档扫描OCR简介

    2019-05-27 11:08:28
    文档扫描OCR识别简介 文档扫描OCR识别(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译...

    文档扫描OCR识别简介

    文档扫描OCR识别(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个文档扫描OCR识别系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

    一般情况下办公人员想得到的是双层PDF文件——双层PDF文件是一种具有多层结构的格式文件,其特点是:文件既可以是文本型的(比如由word生成的文件),也可以是图像型的(比如由扫描生成的文件);双层PDF文件是指文件内容既包含文本层,也包含图像层,且其位置上下一一相对应。通过文档扫描OCR识别得到的双层PDF可以在打印的时候保持原图输出,并且可以全文检索复制,是一种非常完美的文件。

    文档扫描OCR识别技术的应用方式

    由于扫描仪的普及与广泛应用,文档扫描OCR识别软件只需提供与扫描仪的接口,利用扫描仪驱动软件即可。因此,文档扫描OCR识别软件主要是由下面几个部分组成。

    图像输入、预处理:进行顺序,以及识别前的准备

    二值化:进行识别胶的图片处理,变为黑白两色的图片(在一些专有设备上可以用红外拍摄照片)

    噪声去除:去除图片的一些噪点和干扰因素

    倾斜较正:对于扫描倾斜的图片,进行倾斜校正

    版面分析:把页面分为横排文本,竖排文本,表格,图片等不同区域进行针对识别

    字符切割、字符识别

    版面恢复:通过版面分析,将各个区域识别后按位置输出,实现和扫描图片一样的word布局输出

    工作流程

    一个文档扫描OCR识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析,当然也可节省因键盘输入的人力与时间。

    从影像到结果输出,须经过影像输入、影像前处理、文字特征抽取、比对识别、最后经人工校正将认错的文字更正,将结果输出。

    影像输入

    欲经过文档扫描OCR识别处理的标的物须透过光学仪器,如影像扫描仪、传真机或任何摄影器材,将影像转入计算机。科技的进步,扫描仪等的输入装置已制作的愈来愈精致,轻薄短小、品质也高,对文档扫描OCR识别有相当大的帮助,扫描仪的分辨率使影像更清晰、扫除速度更增进文档扫描OCR识别处理的效率。

    影像预处理:影像预处理是文档扫描OCR识别系统中,须解决问题最多的一个模块。影像须先将图片、表格及文字区域分离出来,甚至可将文章的编排方向、文章的提纲及内容主体区分开,而文字的大小及文字的字体亦可如原始文件一样的判断出来。

    对比识别

    这是可充分发挥数学运算理论的一个模块,根据不同的特征特性,选用不同的数学距离函数,较有名的比对方法有,欧式空间的比对方法、松弛比对法(Relaxation)、动态程序比对法(Dynamic Programming,DP),以及类神经网络的数据库建立及比对、HMM(Hidden Markov Model)…等著名的方法,为了使识别的结果更稳定,也有所谓的专家系统(Experts System)被提出,利用各种特征比对方法的相异互补性,使识别出的结果,其信心度特别的高。

    字词后处理:由于文档扫描OCR识别的识别率并无法达到百分之百,或想加强比对的正确性及信心值,一些除错或甚至帮忙更正的功能,也成为文档OCR识别系统中必要的一个模块。字词后处理就是一例,利用比对后的识别文字与其可能的相似候选字群中,根据前后的识别文字找出最合乎逻辑的词,做更正的功能。

    人工校正

    文档扫描OCR识别最后的关卡,在此之前,使用者可能只是拿支鼠标,跟着软件设计的节奏操作或仅是观看,而在此有可能须特别花使用者的精神及时间,去更正甚至找寻可能是文档扫描OCR识别出错的地方。一个好的文档扫描OCR识别软件,除了有一个稳定的影像处理及识别核心,以降低错误率外,人工校正的操作流程及其功能,亦影响文档扫描OCR识别的处理效率,因此,文字影像与识别文字的对照,及其屏幕信息摆放的位置、还有每一识别文字的候选字功能、拒认字的功能、及字词后处理后特意标示出可能有问题的字词,都是为使用者设计尽量少使用键盘的一种功能,当然,不是说系统没显示出的文字就一定正确,就像完全由键盘输入的工作人员也会有出错的时候,这时要重新校正一次或能允许些许的错,就完全看使用单位的需求了。

    结果输出

    有人只要文本文件作部份文字的再使用之用,所以只要一般的文字文件、有人要漂漂亮亮的和输入文件一模一样,所以有原文重现的功能、有人注重表格内的文字,所以要和Excel等软件结合。无论怎么变化,都只是输出档案格式的变化而已。如果需要还原成原文一样格式,则在识别后,需要人工排版,耗时耗力。

    识别技巧简介

    资料录入

    文献资料的数字化录入,一般分为:

    1.纯图像方式。

    2.目录文本、正文图像方式。

    3.全文本方式。

    4.全文索引方式。文本方式和图像方式的混合体。

    识别过程

    书本级:中文,英文;简体,繁体;

    版式级:竖排,横排;有无分栏;

    行切分 字切分

    识别:真正的文档OCR识别识别过程,图像信息还原成文本信息

    后处理:人工干预,主要集中在前四个阶段。

    决定因素

    1.图片的质量,一般建议150dpi以上

    2.颜色,一般对彩色识别很差,黑白的图片较高,因此建议文档OCR识别的为黑白tif格式

    3.最重要的就是字体,如果是手写识别率很低。

    国内文档扫描OCR识别简体差错率为万分之三,如果要求更高的精度需要投入更大的人工干预。繁体识别由于繁体字库的不统一性(民国时期的字库和现在繁体字库不统一),导致识别困难,在人工干预下,精度能达到90%以上(图文清晰情况下)。

    展开全文
  • 文档扫描OCR识别-2

    千次阅读 热门讨论 2021-06-15 17:12:46
    文档扫描OCR识别-2凯哥英语视频1.现有资源梳理2.实现方案规划预处理预测3.代码实现注意点模型安装和其他结语 1.现有资源梳理 文档扫描OCR识别-1 中处理好的图片 操作环境 win10-64位 代码语言 Python 3.6 2.实现...

    凯哥英语视频

    1.现有资源梳理

    文档扫描OCR识别-1 中处理好的图片
    在这里插入图片描述

    操作环境 win10-64位
    代码语言 Python 3.6

    2.实现方案规划

    预处理

    1. 灰度转换
    2. 阈值处理
    3. 中值滤波

    预测

    3.代码实现

    工具包导入

    from PIL import Image
    import pytesseract
    import cv2
    import os
    

    读取输入

    image = cv2.imread('scan.jpg')
    

    预处理

    preprocess = 'blur' #thresh
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    if preprocess == "thresh":  # 阀值
        gray = cv2.threshold(gray, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
    
    if preprocess == "blur":  # 中值滤波
        gray = cv2.medianBlur(gray, 3)
        
    filename = "{}.png".format(os.getpid())
    cv2.imwrite(filename, gray)
    

    模型预测

    text = pytesseract.image_to_string(Image.open(filename))
    print(text)
    os.remove(filename)
    
    cv2.imshow("Image", image)
    cv2.imshow("Output", gray)
    cv2.waitKey(0)  
    

    所有代码连在一起就是完整的代码

    注意点

    模型安装和其他

    1.模型下载
    这是官网的下载地址 ,
    如果下载有困难可以点击我百度网盘上传的
    tesseract 提取码 520y
    2.配置环境
    我的电脑->属性->环境变量
    用户变量 和 系统变量 的Path都新增一下 E:\BaiduNetdiskDownload\Tesseract-OCR (这是我的地址)
    3.更改pytesseract.py代码中的cmd路径
    我的文件路径如下 , 你参考一下也应该就看懂了吧
    D:\anaconda3\envs\tyd_cv34115_py36\Lib\site-packages\pytesseract\pytesseract.py
    把tesseract_cmd指向的路径改为绝对路径 , 我改完了如下
    tesseract_cmd = ‘E:\BaiduNetdiskDownload\Tesseract-OCR\tesseract’
    ok , 可以跑了~

    结语

    别的也没啥说的

    ok,那就这样吧~

    欢迎各位大佬留言吐槽,也可以深入交流~

    展开全文
  • Python+Opencv建立一个文档扫描

    千次阅读 2019-05-02 12:07:12
    一、什么是文档扫描器?   简单来讲,所谓的文档扫描器的作用是对手机拍摄的图片中的目标进行校正的过程,具体的效果如下图所示: 左边表示的是原始的输入图片,右边表示校正后的结果,我们可以观察到相比于校正...

    一、什么是文档扫描器?

      简单来讲,所谓的文档扫描器的作用是对手机拍摄的图片中的目标进行校正的过程,具体的效果如下图所示:
    在这里插入图片描述
    左边表示的是原始的输入图片,右边表示校正后的结果,我们可以观察到相比于校正前的图片而言,纠正后的图片变得更加规整,更加清晰。

    二、实现文档扫描器的步骤

    为了实现这样的一个文档扫描器,我们只需要执行简单的三个操作就可以啦。

    1. 图像边缘检测-获取图像中的目标的边缘;
    2. 使用边缘信息获得目标的轮廓(外点),即找到图片中的目标;
    3. 应用视角变换到图像中去,即进行校正操作;

    三、文档扫描器的代码实现

    # coding=utf-8
    # 导入一些python包
    from imutils.perspective import four_point_transform
    # from pyimagesearch.transform import four_point_transform
    from skimage.filters import threshold_local
    import numpy as np
    import argparse
    import cv2
    import imutils
    import os 
    
    # 设置一些需要改变的参数
    ap = argparse.ArgumentParser()
    ap.add_argument("-i", "--image", required = True,
    	help = "Path to the image to be scanned")
    args = vars(ap.parse_args())
    
    # 创建可视化文件夹
    file_dir = "vis/"
    if not os.path.isdir(file_dir):
        os.makedirs(file_dir)
    
    # 读取图片
    image = cv2.imread(args["image"])
    ratio = image.shape[0] / 500.0
    orig = image.copy()
    # 对输入进行裁剪操作
    image = imutils.resize(image, height = 500)
    
    # 图像灰度化
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 进行高斯滤波处理
    gray = cv2.GaussianBlur(gray, (5, 5), 0)
    # 进行边缘检测处理
    edged = cv2.Canny(gray, 75, 200)
    
    # 显示并保存结果
    print("STEP 1: Edge Detection")
    cv2.imshow("Image", image)
    cv2.imshow("Edged", edged)
    cv2.imwrite("vis\edged.png", edged)
    
    # 在边缘图像中寻找轮廓,并过滤点较小的轮廓
    cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    # 按照区域的大小进行排序并获取前5个结果
    cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:5]
    
    # 遍历整个轮廓集合
    for c in cnts:
    	# 使用多边形近似轮廓
    	peri = cv2.arcLength(c, True)
    	approx = cv2.approxPolyDP(c, 0.02 * peri, True)
    
    	if len(approx) == 4:
    		screenCnt = approx
    		break
    
    # 显示并保存结果
    print("STEP 2: Find contours of paper")
    cv2.drawContours(image, [screenCnt], -1, (0, 255, 0), 2)
    cv2.imshow("Outline", image)
    cv2.imwrite("vis\contours.png", image)
    
    # 使用坐标点进行坐标变换
    warped = four_point_transform(orig, screenCnt.reshape(4, 2) * ratio)
    
    # 将变换后的结果转换为灰度值
    warped = cv2.cvtColor(warped, cv2.COLOR_BGR2GRAY)
    # 获取局部区域的阈值
    T = threshold_local(warped, 11, offset = 10, method = "gaussian")
    # 进行二值化处理
    warped = (warped > T).astype("uint8") * 255
    
    # 显示并保存结果
    print("STEP 3: Apply perspective transform")
    cv2.imshow("Original", imutils.resize(orig, height = 650))
    cv2.imshow("Scanned", imutils.resize(warped, height = 650))
    cv2.imwrite("vis\orig.png", orig)
    cv2.imwrite("vis\warped.png", warped)
    cv2.waitKey(0)
    

    运行方法- python scan,py --image 图片名称

    四、文档扫描器可视化

    在这里插入图片描述
      上图是该算法的一些中间结果,该图中的两行分别展示了两个事例, 第一列表示的是原始的输入图片,和代码中的orig对应;第二列表示的是边缘建测后的结果,和代码中的edged对应;第3列表示的是轮廓的检测结果,和代码中的image对应;第4列表示应用变换后的结果,和代码中的warped对应。
    在这里插入图片描述
      代码中有一段将变换后的图片进行二值化处理,具体的效果如上图所示,左边表示变换之前的结果,整体是一个彩色图,色调偏黄,而进行二值化处理之后的结果只有0和255两种颜色,看起来视觉效果会更好一些。

    五、文档扫描器效果展示

    在这里插入图片描述
      上图是自己实际拍摄的两张测试图片的测试结果,整体来看整个算法比较鲁棒,基本上能够满足我们的需求。

    六、问题探讨

      对于简单的情况来讲,该算法可以很好的处理,但是当遇到的背景比较复杂时,本算法基本上会失效的。

    1. 问题1-当遇到的背景和目标之间有很大的干扰的时候,具体如下图所示:
      在这里插入图片描述
        如上图所示,当背景的颜色和目标的差别不是很明显时,该算法失效,主要的原因是出在边缘检测部分,不能很好的检测出整个目标来,当然通过调节参数可以检测到完整的边缘,但是这并不是我们想要的自动化文档扫描器。

    2. 问题2-当图片中含有多个目标的时候,具体如下图所示:
      在这里插入图片描述
        如上图所示,当图片中含有多个目标时,该算法会失效,主要的原因出现在轮廓检测阶段,聪明的你应该知道如何解决这个问题,不妨试试看,哈哈。

    3. 问题N。。。其实本文这个算法还存在很多的小的问题需要根据工程的需要进行完善的,哈哈哈。

    参考资料

    1、参考博客

    注意事项

    [1] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注。
    [2] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
    [3] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
    [4] 本文测试的图片可以通过该链接进行下载。测试图片链接- 提取码:n7np
    [5] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊!!!

    展开全文
  • 一般通用的文档扫描软件,只能扫描识别简单的简体中文。 对于像纯英文、韩语、日语等的识别技术相对来说难度较大。   对于像这种外文文字的识别,需要更强大的识别核心技术。要具备高性能的文字识别引擎。 包括...
  •   一个纯文档扫描功能,目前可扫描到系统中的所有"doc", “ppt”, “xls”, “pdf”, “docx”, “pptx”, “xlsx”, “txt”, “rar”, "zip"文档,可自由过滤类型,只扫描出文档数据,界面由你定制。使用步骤...
  • 不管上层用的是什么高级语言 (Java, Python, JavaScript等等), 一个跨平台的文档扫描SDK或者软件必须支持不同平台的扫描仪访问协议。Dynamic Web TWAIN是目前唯一一个支持Windows, Linux和macOS的文档扫描SDK。这
  • 使用python+opencv实现文档扫描

    千次阅读 2018-12-13 22:00:07
    一、扫描文档的步骤 捕获图像 检测边缘 提取所需对象/定义轮廓 对提取的对象进行透视变换 提取文本内容(此处不做处理) 1、scanner.py import cv2 import numpy as np import rect #读入要检测的图片,此处...
  • 本系统集成了扫描仪,我们可以在软件内进行文档扫描,以及扫描后的图片编辑。可以保存为图片,或者多个图片生成PDF 文档,zip压缩文档等。 扫描处理图像功能介绍 1.扫描图像 界面打开后默认连接扫描仪...
  • Word文档转换为图片Pdf,Word文档扫描成Pdf Word转换为图片Pdf1、 Word转换为Pdf,程序很多,但转换后的Pdf,还可以复制,虽可以加密禁止复制,但市场上太多的Pdf,还可以把Pdf转换Word等其他格式,很容易被别人利用...
  • document-scanner —— 一个基于 OpenCV 的文档扫描程序 document-scanner 则是一个基于 OpenCV + Python 开发的文档扫描程序,强烈建议阅读我的博客以便更好理解本文: http://vipulsharma20.blogspot.on ...
  • 文档扫描仪行业是一个高度动态的市场,并且随着客户对文档管理的认知和对文档影像数 字化带来益处的追求,将进一步快速地增长。效率的提高可以带来竞争的优势和更高的客户满意度。在企业简化流程以追求成长、速度和...
  • 富士通ScanSnap的S1500文档扫描仪 - 最佳的方式去无纸化 富士通ScanSnap的S1500文档扫描仪是清理所有这些文件是很重要的一个好办法,但都塞满了你的家或办公室。这种扫描仪可以让你保持这些重要文件,而在同一时间让...
  • 1. 识别图片中的文档并矫正 2. 可以旋转结果来调整 3. 可以保存。 注意:文档与背景差别越大越好。 效果如下: 原图像: 识别结果: 矫正结果: 程序如下: import cv2 import numpy as np # 文档...
  • MATLAB图像增强:实现文档扫描效果

    千次阅读 2019-09-17 13:58:56
    当手头没有扫描仪的情况下,可以通过手机拍照+算法处理来使图片达到近似扫描的效果。
  • 有些公司甚至一天要扫描数以万计的文档,电子化后并归档保存。 过去常见的做法是,使用扫描仪自带的桌面软件来完成所有的扫描工作,然后再打开自己的工作平台(应用),把保存在桌面上的文档上载到数据库中存储。 ...
  • 很久以前比较流行的做法是通过使用ActiveX或者OCX这类的浏览器控件技术,直接通过控件来访问本地的扫描仪驱动接口,实现在网页中调取扫描扫描文档并实现电子化存储。 类似ActiveX这类技术以前大家是又爱又恨,它一...
  • 使用Python+OpenCV构建文档扫描程序

    千次阅读 2018-10-18 20:33:57
    首先给各位展示原始图片: 使用自己搭建的文档扫描程序扫描效果如下图: 图一:查找轮廓 图二:边缘检测 图三:应用透视变换和阈值
  • 适用于身份证,名片,文档等照片的裁剪。       3. https://github.com/ay27/ImageDragZoomTest 模仿“扫描全能王”裁剪界面的一种实现方式       4. ...
  • Opencv进阶篇---文档扫描OCR识别

    千次阅读 2019-09-07 15:52:33
    原图: STEP1:边缘检测 STEP2:获取轮廓 STEP3:透视变换:平移、旋转、翻转变换,使图像摆正 ...修改‘/’,否则会出现变量找不到的情况,在windows中‘/’意义丰富,可能造成无法识别的情况,在该路径下找到:E:...
  • 选择好扫描仪,就可以直接扫描得到图片并显示在网页里啦!! 4. 当然,光能扫描并显示,肯定不够。 保存图片成JPEG, PDF, TIFF 这类常见格式是主流。具体最好还是参考samples 目录里面的其他 项目示例 和 代码。 ...
  • OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷...
  • 2.1 文档提取与摆正 2.2 OCR扫描 1 准备工作(python) 1.1 np.diff用法 numpy.diff(a, n=1,axis=-1) 沿着指定轴计算第N维的离散差值 参数: a:输入矩阵 n:可选,代表要执行几次差值 axis:默认...
  • 因为对图像处理有一定的了解和实际操作,所以在想扫描王的一些扫描功能是否可以自己实现,参考网上部分资料后搭建了一个 简单的文档扫描系统。 扫描王实现流程: 1 文档定位 文档定位和本人前面一个车牌识别的...
  • 您希望在网页中连接扫描仪,在网页中进行文档扫描。当您一次性扫描多个文档时,每个文档之间有一页空白页将它们分开,此时您希望在扫描完全部文档后单独保存每组文档。 解决方案 使用Dynamic Web TWAIN SDK,可以...
  • Dynamic Web TWAIN是目前最出色的Web文档扫描SDK,支持Windows,Linux和macOS。 申请一个30天的试用License。 创建一个简单的Hello World: <!DOCTYPE html> <html&gt...
  • 在日常制作或编辑PDF文档时,有时需要在文档中添加一些纸质资料的内容,一般会先将文档扫描后再插入,那么如何在PDF中插入正在或已经扫描好的页面内容呢? 方法一:从扫描仪插入 首先用极速PDF编辑器打开PDF文档,...
  • 在之前的文章中,我们提到了一种扫描文档的分离方法即《分离扫描文档方法(1) —— Dynamic Web TWAIN:如何使用空白页作为扫描文档的分隔器》。本文将再介绍一种扫描文档的分离方法——使用条码/二维码作为扫描...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 209,435
精华内容 83,774
关键字:

文档扫描