本发明涉及信息采集技术领域,具体涉及一种基于OpenCV的高拍仪拍摄文档物体纠偏方法。

背景技术:

OpenCV是Intel开源的计算机视觉库(open source computer vision library)的简称,目前已经发展成为图像预处理的标准,适用于不同的操作系统和平台,包括移动平台等,如安卓等等。OpenCV库由C函数和C++函数构成,实现了在图像处理以及计算机视觉方面的许多通用算法,主要对图像进行如运动检测、跟踪、分割、识别以及3D重建等高级处理。OpenCV库有300多个跨平台的中、高层API(C函数),C函数不依赖外部库,但可以使用外部库。由于OpenCV库是开放源码且代码简洁高效,其中大多数函数都经过汇编最优化,所以能充分利用英特尔系列的芯片的设计体系,因而对于英特尔系列芯片,OpenCV库的代码执行效率是非常高的。OpenCV库具有快速的图像运算能力和强大的矩阵运算能力,并且具有详细、简洁的图像和矩阵用户接口。OpenCV已发布了多个版本,最新的版本支持主流的操作系统,包括PC端和移动端的操作系统,为开发者提供了开发便利,大大提升了开发效率,并且图像算法稳定可靠。

目前常见的电脑周边办公设备如高拍仪,是一种视频输入设备,被广泛的运用于办公扫描,教育、展示等方面。通过高拍仪获取的文档影像进行处理日益成为人们研究的热点。在银行、电信、公安、公积金、财税、证券等行业,票据及证件的电子影像系统已经出现,这些系统通常以票据及证件的拍摄图像作为输入。在拍摄输入的过程中,由于摆放不当、纸张折叠及其他各种因素,拍摄得到的图像总是偏斜,在具体应用中,将文档纠正,然后用去黑边算法去掉周围的黑边。高拍仪作为一种新型扫描设备,已经跻身扫描市场,但是通过高拍仪扫描的图像噪点较多、亮度不均匀,使得基于传统扫描仪的纠偏算法失效;同时,由于高拍仪是开放环境、光线变化很大,文档放置很随意,所以不能百分百保证纠偏成功,给用户带来很大困惑。

技术实现要素:

针对现有技术的不足,本发明提供一种基于OpenCV的高拍仪拍摄文档物体纠偏方法,能有效保证用户一次拍图就能够获取自己想要的图像。

为实现上述目的,本发明的技术方案为:

一种基于OpenCV的高拍仪拍摄文档物体纠偏方法,其特征在于,所述方法包括以下步骤:

S1:从高拍仪摄像头中实时获取图像;

S2:利用cvSmooth函数对图像去噪点;

S3:将去噪点的图像利用cvThreshold函数对图像进行二值化;

S4:利用Hough变换找到直线。

进一步地,所述cvThreshold函数的算法具体如下:利用迭代法设定一个阈值T,将大于T的像素群的像素点的灰度值设置为255;小于T的像素群的像素点的灰度值设置为0。

进一步地,所述迭代法具体如下:预置一个阈值T,对图像中灰度值>T的像素点求出灰度平均值T1,图像中灰度值

进一步地,所述Hough变换步骤如下:先将二值化后的图像利用cvCanny函数寻找输入图像的边缘,并利用cvHoughLines2函数判断出其边缘是否为直线,然后算出所有直线与水平直线所形成的角度,保存在数组当中,数组大小为N个元素,最后对数组循环N次,找出数组中出现值相等最多的值即为旋转的角度。

进一步地,所述cvCanny函数的算法具体如下:首先用高斯滤波器平滑图像,然后用一阶偏导的有限差分计算梯度的幅值和方向,再对梯度幅值进行非极大值抑制,最后用双阀值算法检测和连接边缘。采用高斯平滑函数。

本发明与现有技术相比,具有如下优点:

本发明的纠偏方法,基于OpenCV,大大提升了开发效率,且图像算法稳定可靠,而主要利用了Hough变换法,能有效将图像内需要纠偏的部分截出,最终通过计算出其偏移角度,并对其进行旋转偏移,将图像中需要截出的部分正视展示出来,不仅可实时显示拍摄的内容,纠偏结果可视化,而且令使用者知道将要扫描的文档是否可以正常完成纠偏操作,告知使用者要纠偏哪些内容,真正做到所见即所得,保证使用者一次拍图就能够获取自己想要的图像,将高拍仪可视化的优点提到一个新的高度,同时给使用者一种新的使用体验。

附图说明

图1为基于OpenCV的高拍仪拍摄文档物体纠偏方法的流程示意图;

图2为基于OpenCV的高拍仪拍摄文档物体纠偏方法中cvThreshold函数的迭代法流程示意图;

图3为基于OpenCV的高拍仪拍摄文档物体纠偏方法中的Hough变化部分流程示意图;

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例

如图1所示,一种基于OpenCV的高拍仪拍摄文档物体纠偏方法,其特征在于,所述方法包括以下步骤:

S1:从高拍仪摄像头中实时获取图像;

S2:利用cvSmooth函数对图像去噪点;

S3:将去噪点的图像利用cvThreshold函数对图像进行二值化;

S4:利用Hough变换找到直线。

其算法流程如图1所示,S1:从高拍仪摄像头中实时获取图像,首先从摄像头中实时获取图像,实时显示是本方法的一个重要特色,为了做到实时显示,而对高拍仪所传输的每一帧图像都进行处理,同时保证处理时间在20ms以内,这样就可以保证实时计算,实时框选,当用户移动纸张,或者扫描文档有变化的时候,会及时跟踪并框选当前文档,让视频跟画框同步。该种实时显示让用户扫描起来更便利,更快捷。

S2:利用cvSmooth函数对图像去噪点,在对图像进行去噪点平滑处理时,需要注意的是在用窗口扫描图像过程中,对于图像四个边缘的像素点可以不处理,也可以使用灰度值为0的像素点扩展图像的边缘。为了使编程工作简单,可以预先定义一个的模板数组。对于小的卷积核(从3x3到7x7),使用上述计算标准sigma的公式速度会更快。本发明使用OpenCV的cvSmooth函数来平滑图像,为图像的二值化做好准备。

由于把图像读进内存,由于处理的是文本、表格等文档,彩色信息在处理过程中并没有作用,所以把内存中的图像进行二值化处理,以灰度形式显示。

S3:将去噪点的图像利用cvThreshold函数对图像进行二值化,二值化之前,为了提高处理速度,首先对图像进行缩放,这样就能保证图像处理的实时显示。本申请中的二值化使用OpenCV的cvThreshold函数,该函数的典型应用是对灰度图像进行阈值操作得到二值图像,利用cvThreshold函数对其图像二值化具体如下,利用迭代法设定一个阈值T,将大于T的像素群的像素点的灰度值设置为255;小于T的像素群的像素点的灰度值设置为0用阈值T将图像的数据分成两部分:简单的说就是将整个图像呈现出只有黑和白的视觉效果,大于T的像素群是黑的,小于T的像素群是白的,将图像上的像素点的灰度值设置为0或255。但是此方法确定的阀值得到的二值化在光线变化和亮度不均匀的时候效果很差,因此在本发明中使用迭代法求阈值。

其迭代法具体如下:预置一个阈值T,对图像中灰度值>T的像素点求出灰度平均值T1,图像中灰度值

其具体流程如图2所示,其中T:为最大灰度值和最小灰度值的平均值,S0=0.0;n0=0.0:为计算灰度大于阈值的元素的灰度总值、个数赋值;S1=0.0;n1=0.0:为计算灰度小于阈值的元素的灰度总值、个数赋值;S1=S1+S:大于阈域值图像点灰度值累加;n1=n1+1:大于阈域值图像点个数累加;S0=S0+S:小于阈域值图像点灰度值累加;n0=n0+1:小于阀域值图像点个数累加;T0=S0/n0:求小于阀域值均值;T1=S1/n1:求大于阀域值均值;丨T1-T2丨

S4:利用Hough变换找到直线,Hough变换步骤如下:(1)、将二值化后的图像利用cvCanny函数寻找输入图像的边缘,并利用cvHoughLines2函数判断出其边缘是否为直线;(2)、算出所有直线与水平直线所形成的角度,保存在数组当中,数组大小为180个元素;(3)、对数组循环180次,找出数组中出现值相等最多的值即为旋转的角度。

cvCanny函数的算法具体如下:1、用高斯滤波器平滑图像;2、用一阶偏导的有限差分计算梯度的幅值和方向;3、对梯度幅值进行非极大值抑制;4、用双阀值算法检测和连接边缘。cvHoughLines2函数主要利用霍夫变换来对直线进行检测的,霍夫变换的公式为ρ=xcosθ+ycosθ,因为同一条直线上的点对应的(ρ,θ)是相同的,因此可以先将图片进行边缘检测,然后对图像上每一个非零像素点,在参数坐标下变换为一条直线,那么在直角坐标下属于同一条直线的点便在参数空间形成多条直线并内交于一点,从而对直线进行检测。找出直线后算出所有直线与水平直线所形成的角度,保存在数组当中,数组大小为180个元素,对数组循环180次,找出数组中出现值相等最多的值即为旋转的角度。

采用本申请所述的方法能够实现高拍仪可视化下稳定的纠偏,这使得高拍仪相对于普通拍摄仪的一个优点在于可视化,可实时显示拍摄的内容,纠偏结果可视化,带来了非常友好的用户体验,让用户知道将要扫描的文档是否可以正常完成纠偏操作,告知用户将要纠偏哪些内容,真正做到所见即所得,保证用户一次拍图就能够获取自己想要的图像,将高拍仪可视化的优点提到一个新的高度,同时给用户一种新的用户体验。

上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。

java opencv 纠偏_一种基于OpenCV的高拍仪拍摄文档物体纠偏方法与流程相关推荐

  1. python椭圆形骨料_一种基于python再生混凝土三维随机球形骨料模型的构建方法与流程...

    本发明涉及建筑技术领域,尤其涉一种基于python再生混凝土三维随机球形骨料模型的构建方法. 背景技术: 再生混凝土是指利用再生粗骨料部分或者全部代替天然骨料配置而成的混凝土,再生混凝土技术的开发和利 ...

  2. android 模拟器识别,一种基于符号的识别Android应用运行在模拟器中的方法与流程...

    本发明涉及一种基于符号的识别android应用运行在模拟器中的方法. 背景技术: 很多的移动应用都会使用一种基于lbs的地理围栏的技术(如移动打卡),某些用户为了突破这种围栏的限制,将移动应用运行在模 ...

  3. gis快速接地开关_一种基于扫描电镜和能谱仪的GIS放电异物来源分析方法

    扫描电镜(SEM)及其附带的能谱仪(EDS)可以用来进行金属的组织形貌观察和微区成分分析.扫描电镜具有景深大.图像立体等优点,图像放大倍数范围为8~300000倍,试验人员可以通过调节扫描电镜的相关参 ...

  4. 快速谱峭度matlab,一种基于快速谱峭度分析的泵潜在空化故障检测方法与流程

    本发明属于信号处理领域,尤其涉及一种基于快速谱峭度分析泵的实时状态并且检测其潜在空化故障的方法. 背景技术: 高性能离心泵在当今社会上广泛应用和需求巨大.由于工作在高压高速等复杂条件下,离心泵的空化故 ...

  5. 飞机机电管理计算机故障措施,一种基于故障树的飞机机电系统健康管理装置及管理方法与流程...

    本发明属于航空机电系统健康管理技术,涉及一种基于故障树的飞机机电系统健康管理装置及管理方法. 背景技术: 飞机机电系统包含燃油子系统.环控子系统.液压子系统.供电子系统.起落架子系统等,分布于飞机各个 ...

  6. matlab和creo仿真,一种基于Creo和Matlab的复杂空间焊缝曲线的重构方法与流程

    本发明涉及一种基于Creo和Matlab的复杂空间焊缝曲线的重构方法,属于计算机图形学技术领域. 背景技术: 在工业生产中,经常遇到各种类型的曲线,如轴的截面圆轮廓曲线.螺纹的螺旋线.齿轮轮齿的齿廓曲 ...

  7. 超材料 s参数反演 matlab,一种基于改进K‑K算法的超材料电磁参数反演方法与流程...

    本发明属于测试技术领域,具体涉及一种基于改进K-K算法的超材料电磁参数的反演方法. 背景技术: 超材料是一种新型的人工材料,对电磁波具有独特的物理特性,比如负折射率.负电磁参数等,这些独特的物理特性使 ...

  8. java 下载加速_一种基于Java的大文件下载加速方法与流程

    本发明涉及java/多线程技术领域,涉及一种加速文件下载装置,具体提供一种基于java的大文件下载加速方法. 背景技术: 现有的常用下载方式是基于浏览器的单线程下载.这种单线程下载的方式,是通过htt ...

  9. 基于zynq的千兆网udp项目_一种基于ZYNQ的四路万兆以太网安全交换机的制作方法...

    本实用新型涉及网络安全.网络通信技术领域,尤其是一种基于ZYNQ的四路万兆以太网安全交换机,适用于大中型企业的交换网络. 背景技术: 随着互联网的高速发展,传统的以太网交换机在功能和性能上已不能满足要 ...

  10. 云管边端架构图_一种基于“云-管-边-端”架构的智能配电系统的制作方法

    本发明属于监控领域,特别涉及一种适用于低压配电房.配电室的基于"云-管-边-端"架构的智能配电系统. 背景技术: 2019年,国网配电专业工作会议提出了"大力推进配电物联 ...

最新文章

  1. CV语义分割实践指南!
  2. Kubernetes实战[1]: 基于kubernetes构建Docker集群环境实战
  3. 【力扣】NO.1.两数之和
  4. 11条要点速读:网络小额贷款业务管理暂行办法(征求意见稿)
  5. centos7网卡编辑_Centos7修改网卡名称
  6. caffe中pad的作用
  7. python dash html.table_阅读 Python dash 代码的时候有个问题, 那个包的调用有问题?
  8. iOS Block(一)
  9. AutoJs学习-Auto趣头条文章阅读
  10. c语言课设ktv点歌系统1,C语言ktv点歌系统
  11. .bat批处理文件格式运行JAVA应用程序
  12. Parquet 格式文件
  13. 您所说的话:您如何与Bacn打交道
  14. Python-OpenCV按住鼠标左键绘制图形
  15. 【安全算法】一文带你简要了解常见常用的安全算法
  16. WPF MVVM架构 程序退出右下角托盘图标简单解决方案
  17. 如何用人工的方式将Excel里的一堆数字变成一个数组
  18. 真正的宽带上网加速方法
  19. 找不到com.sun.beans.introspect.PropertyInfo的类文件问题
  20. 【测评】迅为4418/6818开发板安卓Android开发板

热门文章

  1. 空间解析几何中那些图形和方程(大彻大悟版)
  2. win10任务栏太宽而且调不了_win10系统任务栏变宽了的修复方法
  3. java jsp使用flash播放mp4,jsp页面添加视频播放
  4. dump日志分析工具
  5. 忘记压缩包密码 python 暴力破解rar密码
  6. 盛世昊通谈跨界造车风潮,不同车企到底打什么主意
  7. Topaz滤镜2018全系列合集Topaz Plugins Bundle
  8. 《淘宝技术这十年》之LAMP架构的网站
  9. MarkDown学习手册
  10. 加速器在模拟器中的尝试