[image]java.awt.image能从事什么,需要什么技能和基础

http://en.wikipedia.org/wiki/Java_Specification_Request Java Community Process From Wikipedia, the free encyclopedia (Redirected from Java Specification Request) Jump to: navigation, search &! - Start content -& The Java Community Process or JCP, es
这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整的请看完整列表. 1.java.util.List (2889) 2.java.util.ArrayList (2831) 3.java.io.IOException (2813) 4.java.util.Map (2592) 5.java.util.HashMap (2541) 6.java.io
Knowledge points: Java 2D Enhancements Section Overview, AWT graphics lack of capacity, Java 2D API Section II the basic method of drawing graphics Conversion Graphics2D object, Graphics class properties, the properties of drawing and basic programmi
画好的图案:Saturn.png 作图代码:Saturn_.java(java版本:1.8.0_25) import java.awt.image.BufferedI import java.awt.BasicS import java.awt.C import java.awt.F import java.awt.Graphics2D; import java.awt.RenderingH import java.io.File
1. Package A 2. 3. Import java.awt.geom.AffineT 4. Import java.awt.image.AffineTransformOp; 5. Import java.awt.image.BufferedI 6. Import java.io.IOE 7. Import java.net.URL; 8. 9. Import javax.imageio.ImageIO; 10. Import ja
1, using RequestDispatcher way 1, web.xml file to add &mime-mapping& &extension& doc &/ extension& &mime-type& application / vnd.ms-word &/ mime-type& &/ mime-mapping& 2, the program is as follows: & % @ page langu
Bug has been added Fix ~ ~ Notes import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Terris extends JFrame implements Runnable, KeyListener { private short isPlaying=0/* If the game , Declaration */,xOffSet = 3/* Presented
iText is able to quickly generate PDF documents java class library. iText of java classes created for those who want to include text, tables, graphics, read-only document is very useful. Its class library especially with java Servlet good to co. Use
JAVA-based: A collection of objects (below) (12) Map features: Map using put (Object key, Object value) method will add a value to the Map inside, and put this value with the key (you have to check in with the object) linked. After the given key, get
iText is able to quickly generate PDF documents java class library. iText of java classes created for those who want to include text, tables, graphics, read-only document is very useful. Its class library especially with java Servlet good to co. Use
package com.c.elmer.util. import java.awt.C import java.awt.color.ColorS import java.awt.geom.AffineT import java.awt.image.AffineTransformOp; import java.awt.image.BufferedI import java.awt.image.ColorConvertOp; import
1. package excel. 2. 3. import java.io.F 4. import java.io.FileOutputS 5. import java.io.OutputS 6. import java.util.ArrayL 7. import java.util.D 8. 9. import jxl.C 10. import jxl.CellT 11. import jxl.S 12. im
1, Iterator (an important interface) Is a unified approach to traverse the elements of the various collections / iteration tools, also known as &iterator.& It allows the &traverse& the process of removing the elements of the collection
import java.io.FileOutputS import com.lowagie.text.D import com.lowagie.text.F import com.lowagie.text.I import com.lowagie.text.PageS import com.lowagie.text.P import com.lowagie.text.pdf.BaseF i
//package E import java.awt.C import java.awt.FlowL import java.awt.GridL import java.awt.event.ActionE import java.awt.event.ActionL import java.awt.event.ItemE import java.awt.event.ItemL
ServletRequest class by getInputStream () method to get a client to the server's data flow, analysis of upload file formats, based on the analysis will turn out more than one file server target file. Format similar to the following: / / File separato
Failed to Find: sql = select type,name,description,remark,tableinfoid from tablefield where tableinfoid = ( select id from tableinfo where name = 'NEWSPAPER') order by name java.sql.SQLException: Does not execute the statement handle at oracle.jdbc.d
I. Introduction In the enterprise information system, the report processing has been more important role in accounting, this article introduces a Java component generates PDF report - iText. Through the use of server-side JavaBean Jsp or generate PDF
PictureCheckCode.java import java.awt.BasicS import java.awt.C import java.awt.F import java.awt.G import java.awt.Graphics2D; import java.awt.geom.AffineT import java.awt.geom.Line2D; import java.awt.image.BufferedIma
1.package com.hefeng. 2. 3. 4.import java.text.DateF 5.import java.text.ParseP 6.import java.text.SimpleDateF 7.import java.util.C 8.import java.util.D 9.import java.util.GregorianC 10. 11.public class Tim
ECLIPSE the most recent error frequently, saw logs, the following error message: ENTRY org.eclipse.ui 4 0
09:56:43.763 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.Out
Battle City to do today is to finally come out a bit unhappy, but also places such as the location of each tank are fixed up, there is not enough to write robust code, tanks, robots do not have to control that part of the computer it make perfect, wh
Java Socket programming - Multithreaded chat program first, for server programming, as the service side, the main program by following a few steps: / / 1. Creating socket ServerSocket ss = new ServerSocket (PortNumber); Socket s = ss.accept (); / / l
In the Solaris system call webservices Times under the title, such as abnormal, has been a good run before any exception occurs, the only change part of the logic code from the new implementation of such a tragedy happened. PS: Details of the error c
May 16, 2000 This series of articles will provide a general understanding of network security, and the developers need to master the Java programming language, a unique performance. Serialized in the follow-up, will discuss the design of Java platfor
Code base One. What is the verification code and its role : Code for the automatic distinction between computer and human Turing test stands, is a distinction between a computer user's public automatic process, this problem can be generated by a comp
Keywords: java string commonly used class of first order today, some of his usual string under common categories: Java code 1.import java.io. *; 2.import java.text.DecimalF 3.import org.apache.oro.text.regex.PatternC 4.import org.apache
Scenarios for the export of HDFS data to MySql database. HDFS files and MySql field-one correspondence, but when the error each time. Execute the command: ./sqoop export --connect jdbc:mysql://10.0.0.0:3306/datacenter --username root --password admin
Scarf on the weekend at home, to see pictures have a watermark on the collar sina, think Java has a special Image processing package, the same watermark should be able to function, check the information I discovered a small test java watermark is sti
This article will introduce a Java 3D game to Checkers3D and how to use it to create a scenario that includes dark green and blue tiled surface interval, and its axis is along the x-and z-axis, a blue background and a floating can be illuminated from
本篇文章介绍了,Java字符编码解码的实现详解.需要的朋友参考下 字符集基础: Character set(字符集) 字符的集合,也就是,带有特殊语义的符号.字母&A&是一个字符.&%&也是一个字符.没有内在数字价值,与 ASC II ,Unicode,甚至是电脑也没有任何的直接联系.在电脑产生前的很长一段时间内,符号就已经存在了. Coded character set(编码字符集) 一个数值赋给一个字符的集合.把代码赋值给字符,这样它们就可以用特定的字符编码集表
最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印;一下提供下个方法,希望大家可以用得着 package com.blogs. import java.awt.AlphaC import java.awt.C import java.awt.F import java.awt.Graphics2D; import java.awt.I import java.awt.RenderingH imp
先从题库中随机抽取十道题,然后将其保存在另一张表中并将其相应的题号变为一到十.便于接下来的其他操作. import java.awt.BorderL import java.util.*; import java.awt.event.*; import java.awt.C import java.awt.EventQ import java.sql.C import java.sql.DriverM import jav
java实现的汉字输入验证码,主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确,实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框值和session值比较,功能就怎么简单 package xwcms.net. import java.awt.C import java.awt.F import java.awt.G import java.awt.Graphics2D; imp
这篇文章主要介绍了java实现图片验证码示例,需要的朋友可以参考下 package com. import java.awt.C import java.awt.F import java.awt.G import java.awt.Graphics2D; import java.awt.image.BufferedI import java.io.IOE import java.util.R import
这里给大家分享了一个java常用的图像处理工具类,包含缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等,有需要的小伙伴参考下. 本工具类的功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 package net.kitbox. import java.awt.AlphaC import java.awt.C import java.awt.F import java.awt.G import
Thumbnailator是一个为Java界面更流畅的缩略图生成库,从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,使用起来非常方便,需要的朋友可以了解下 Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量.同时还支持根据一个目录批量生成缩略图. 版本:thumbnai
在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种. 我们举个例子来详细讲解FP-Tree算法的完整实现. 事务数据库如下,一行表示一条购物记录: 牛奶,鸡蛋,面包,薯片 鸡蛋,爆米花,薯片,啤酒 鸡蛋,面包,薯片 牛奶,鸡蛋,面包,爆米花,薯片,啤酒 牛奶,面包,啤酒 鸡蛋,面包,啤酒 牛奶,面包,薯片 牛奶,鸡蛋,面包,黄油,薯片 牛奶,
在百度文库上看到一篇文章&遗传算法及神经网络在游戏开发中的应用&,里面讲到了用遗传算法走迷宫的小游戏,我自己编程实现了一下,并用SWT把游戏的界面做出来了. 算法我就不多说了,上述文章里面讲得很清楚.直接看我做的小软件吧. 刚开始初始化一个迷宫,一般是走不通的,但你点击一个格子它就会变色,由路变为墙,或由墙变为路. 点击&Run&之后,遗传算法在后台运行,把出路给你找出来,然后在迷宫上把路径标出来. 点击&Evolution Chart&查看进入情况,即
CHAMELEON是一种两阶段聚类法.第一阶段把点分成很多小的簇:第二阶段根据相近程度合并这些小的簇.第一阶段采用K最邻近法,即把一个点和它最邻近的K个点连接起来.第二阶段计算任意两个簇的互连性RI和紧密性RC,当两个指标都比较大时才合并这两个簇. 下图是第一阶段后形成的几个小的子簇: 把子簇合并后形成的最终簇划分: 下面给出CHAMELEON算法的核心代码: 001 /** 002 * Author: Orisun 003 * Date: Sep 13,
* FileName
Java字符串和正则表达式 String是固定不变的,即当你改变String时实际是上创建了一个新字符串,而原来的字符串保持不变.StringBuffer和StringBuilder允许内容是可变的,它们都提供setCharAt(),insert()等修改字符串内容的方法.StringBuffer是线程安全的,在多线程应用中必须使用StringBuffer.StringBuilder不是线程安全的,当不使用多线程时,使用StringBuilder更高效. java正则表达式由Matcher和Pa
前一阶段关于网站后台明文保存传的沸沸扬扬,想起了MD5加密算法,就在网上查了一下,在网上收集了Java与JavaScript中使用的两个例子,试验过,分享下.这也是我在的第一篇文章了,原来在csnd呆过,不过现在每天上的还是,于是决定转移阵地了,我想坚持下来,希望能有一个好的开始,加油! Java: package org.bearfly.test.md5; import java.io.UnsupportedEncodingExcepti
/jw-07-2000/jw-0714-flatten.html 平面化你的对象 揭开JAVA序列化API的神秘面纱 By Todd M. Greanier, , 07/14/00 译者:黑狗 Email: 译者注:全篇,序列化和反序列化的说法分别是flatten和inflate,不知道怎么翻译,我翻译成了&平面化&或者&解析&,从字面上,分别就是压
JAVA开发,一般是服务器之间的传送数据比较多,但是有时候会从服务器向手机等低端设备传送数据.所以,进行数据转换就势在必行了.以下是进行数据转换的实现代码: //这是服务器端的一个数据抽象类 public abstract class AbstractDataPacket { protected ByteBuffer _ protected static final byte DEFAULT_SIZE = 16; static final public byte BOOLEAN_SIZE
在Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作批量的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的,例如Map,Set,List等.并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担.程序员可以以这个集合框架为基础,定义更高级别的数据抽象,比如栈.队列和线程安全的集合等,从而满足自己的需要. 线性表,链表,哈希表是常用的数据结构,在进行Java
注:如果需要控件停在动画后的位置,需要设置android:fillAfter属性为true,在set节点中.默认在动画 结束后回到动画前位置.设置android:fillAfter后,我们看到了控件留在了动画后的位置,其实也只是看到在那个位置,真实位置还是在原来动 画前那里,你会发现Button不能被点击,就是这个原因.所以我们可以在动画结束后,手动把控件移动到动画结束后的位置.这就需要根结点为 AbsoluteLayout,因为LinearLayout不能通过x,y座标定位
Java简单图像处理 Java图像格式转换 ImageIO 目前支持一下格式: BMP, JPG,PNG, JPEG, WBMP, GIF import java.awt.image.BufferedI import java.io.F import java.io.IOE import javax.imageio.ImageIO; public class ImageIOTest { public static void main(String args[]
java.lang.UnsatisfiedLinkError: Couldn't load mono: findLibrary returned null 11-27 14:54:28.770: E/AndroidRuntime(20334): FATAL EXCEPTION: main 11-27 14:54:28.770: E/AndroidRuntime(20334): java.lang.UnsatisfiedLinkError: Couldn't load mono: findLibr
java 大图片处理GraphicsMagick + im4java [缩放,旋转,裁剪] ImageMagick 主页:http://www.imagemagick.org/script/index.php GraphicsMagick 主页:http://www.graphicsmagick.org/ 两个图片处理软件我就不说了,因为我没那个评论的本事,其实这些软件都会有命令行的指令,然后我们用java调用来对图片进行编辑,调用什么指令可能学一下才知道,不过我们也不用自己写指令吧,因为别人已
针对自己的管理后台程序,自己要在EXTJS中实现多图上传,当然可以写多个file也能完成上传,类似于 这样的,多写几个也是能实现多图上传的,但是现在我要实现的是用一个多图上传的组件 swfuplaod代替. 实现过程如下: (1)首先在js中增加组件代码: { title:'图片上传', region:'center', height: 200, width:500, xtype: 'panel', autoScroll: true, items : [ { xtype:'uploadPanel
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.068 (s). 9 q(s)灵云SDK开发手册(Java API)
以下描述了如何使用灵云OCR能力。
1. OCR简介
OCR(Optical Character Recognition)光学字符识别技术,是指用扫描仪或数码相机等光学设备, 获取文本资料的图像,然后对图像文件进行分析处理,获取上面的文字及版面信息的过程。
2. 选择模块和能力
灵云可以提供云端和本地端的识别能力,目前提供以下能力:
ocr.cloud : 云端识别,支持中文简繁体识别(包括英文等)。
ocr.cloud.* : 云端识别,多语种识别。
ocr.local : 本地端识别,支持中文简繁体识别(包括英文等)。
ocr.local.template : 本地模板识别能力,iOS暂不支持该能力 。
ocr.local.bizcard : 本地名片识别能力,iOS暂不支持该能力 。
无论使用云端或本地端的识别能力,基础模块 hci_ocr都是需要的。当使用云端能力时,需要加上hci_ocr_cloud_recog模块, 当需要使用本地端能力时,需要加上hci_ocr_local_recog模块。
3. 支持的图像
3.1 图像格式
OCR内部支持三种图像格式:
二值图像:每个像素点由1bit表示(0,1分别表示背景和文字)
256级灰度图像:每个像素点由1byte表示, 表示256级灰度
24位真彩色图像:每个像素点为RGB三种分量,每个分量由1byte表示。
同样幅面的图像,灰度图像的大小将是二值图像的8倍,而真彩色图像的大小将是二值图像的24倍, 尽管经过压缩,这一倍数可能会缩小,但灰度和彩色图像仍然要比二值图像大很多。 当使用云端识别功能时,图像需要传输到云端,因此图像的大小显得比较关键。 我们建议在可以使用二值图像的时候,尽量直接使用二值图像。例如在使用扫描仪的时候, 可以将扫描图像的类型设为二值,而非灰度或彩色,这样可以减少上传的流量。 当一定要使用灰度图像时,我们也提供了配置项,可以让在本地端进行二值化工作,之后再传送到云端。
3.2 二值化
OCR的核心引擎仅针对二值图像,因此即便上传的是灰度图像和彩色图像,也会先经过二值化的转换过程,再交给识别核心。 二值化过程可以在云端实现,也可以在发送往云端前进行预处理,即在本地进行二值化处理过程, 这样向云端传输时就可以传输二值化过的图像,可以大大减少流量。
目前也支持两种二值化方法,可以在识别、版面分析、倾斜校正的时候利用配置项 binarize进行指定:
global: 全局二值化算法,主要针对通过扫描、截屏等获取的图像。
adaptive (缺省): 局部自适应二值化算法,主要针对通过拍照、摄像头等获取的受光照影响较大图像, 这种图像无法使用全局一个统一的阈值来进行二值化。
global算法速度快,对于受光照影响小的图像效果较好。adpative算法速度较慢,但针对受光照影响大的图像效果好于全局方法。 需要开发者根据具体应用所面对的场景自行选择。
binarize配置项仅对彩色和灰度图像有效,如果给的是二值图像,此配置项将忽略。
3.3 图像文件格式
一个图像可以使用不同的文件格式进行存储,例如TIFF, BMP, JPG, PNG, GIF等。这些图像格式具有文件头, 标识了文件格式、图像的基本信息(例如宽、高、图像类型),并且对图像数据进行了压缩。 在使用时,开发者直接将这些格式的数据传给灵云OCR模块,灵云OCR模块会根据文件头自动判断文件格式, 并进行解压缩操作。
目前不支持多页TIFF类型的文件,多页TIFF只会处理第一页的内容。 目前Android不支持GIF格式以及TIFF格式文件。
3.4 截屏图像设置
针对截屏图像,由于和普通扫描或拍照图像不太一样,因此灵云SDK内部进行了特别的支持, 可以在识别、版面分析、倾斜校正的时候利用配置项 imageType 进行指定:
normal(缺省): 普通图像
screen: 截屏图像
4 设置图像
4.1 直接设置图像数据
在识别或其他相关操作之前,需要将图像数据设置到识别会话中。
通过缓存设置要识别的图像
byte[] imageData = ReadFile(sFilePath);
errCode = HciCloudOcr.hciOcrSetImageBuffer(mSessionId, imageData);
通过路径设置要识别的图像
errCode = HciCloudOcr.hciOcrSetImageFile( mSessionId,
strFilePath );
在Android平台下,还提供了直接将Android Bitmap设置到会话中的功能:
errCode = HciCloudOcr.hciOcrSetImageByAndroidBitmap( mSessionId,
要注意的是:在Android平台上, hciOcrSetImageBuffer() 和 hciOcrSetImageFile() 两个函数也是通过Bitmap的解码函数来进行图像数据或文件的解码,然后再利用 hciOcrSetImageByAndroidBitmap 进行设置的, 因此支持的文件类型和格式等同于Bitmap所支持的格式。
4.3 获取图像
应用可以获得解码后的图像。
errCode = HciCloudOcr.hciOcrGetImage(Session, image);
如果是使用 hci_ocr_set_image_buffer() 设置的图像,由于在设置时并未解码,如果要获取图像,将会在内部触发解码操作。
如果进行只用 hci_ocr_deskew() 进了了倾斜校正,并且配置项adjustImage=yes, 会修改会话中的图像数据,再使用本函数获得图像为校正过的图像数据。
在Android平台下,还提供了直接获取可显示的Bitmap的函数:
OcrAndroidBitmap oab = new OcrAndroidBitmap();
errCode = HciCloudOcr.hciOcrGetAndroidBitmap ( Session, oab );
Bitmap bitmap = oab.getBitmap();
获得的Bitmap即可用于显示或者保存。
4.4 保存图像
开发者可以使用保存图像的函数 HciCloudOcr.hciOcrSaveImageFile(),可以将从 hciOcrGetImage() 函数得到的OcrImage数据保存为一个文件。
errCode = hci_ocr_get_image( nSessionId,
errCode = hci_ocr_save_image_file ( pszSaveFileName, &image );
此函数会根据文件名的后缀,确定保存的图像格式。
在Android平台上,开发者也可以获得会话中的Android Bitmap,再利用Bitmap的compress()函数进行数据压缩和保存。
5.1 最简单的识别
在将图像数据设置给会话后,即可使用 HciCloudOcr.hciOcrRecog() 进行识别, 此时会将整张图像当成一个横排正文区域进行识别。通过返回的 OcrRecogResult 结构获取识别结果。示例如下:
String sRecogCfg = &&;
ArrayList &OcrRecogRegion& recogRegion =
OcrRecogResult recogResult = new OcrRecogResult();
nRet = HciCloudOcr.hciOcrRecog(mSessionId, sRecogCfg, recogRegion, recogResult);
errCode = HciCloudOcr.hciOcrSessionStop(mSessionId);
5.2 指定区域识别
可以在识别时手动指定区域的位置,识别将在指定的区域范围内进行识别,例如一张图片上有两栏, 则需要指定两个区域进行识别。
String sRecogCfg = &&;
ArrayList &OcrRecogRegion& recogRegionList = new ArrayList &OcrRecogRegion&();
OcrRecogRegion recogRegion = new OcrRecogRegion();
OcrRecogRect recogRect = new OcrRecogRect();
recogRect.setLeft(100);
recogRect.setRight(200);
recogRect.setBottom(100);
recogRect.setTop(200);
recogRegion.setRegionRect(recogRect);
recogRegion.setRegionType(HciCloudOcr.OCR_RECOG_RGNTYPE_HORZTEXT);
recogRegion.setRegionLang(HciCloudOcr.OCR_RECOG_LANG_DEFAULT);
recogRegionList.add(recogRegion);
recogRegionList.add(recogRegion2);
nRet = HciCloudOcr.hciOcrRecog(mSessionId, imageData, sRecogCfg, recogRegion, recogResult);
区域的类型,目前支持横排正文、竖排正文、表格和图片。图片区域将不参与识别,但最最后如果是输出详细信息 (参见 ) 时,会作为一个区域节点出现,便于将来版面恢复时候的统一处理。
区域的语言,这里一般都指定为 OCR_RECOG_LANG_DEFAULT,表示使用能力和配置串确定的识别语种。 但如果碰到一个页面上有多种语言(例如有简体也有繁体、或者也有纯英文的区域), 则可以强制指定某个区域的语言。
由于下面介绍的自动版面分析和自动倾斜校正,都有一定的可能会出错,因此,如果开发者可以知道需要识别的位置, 或者可以设计UI让用户来确定识别区域,或者让用户在 HciCloudOcr.hciOcrLayoutAnalysis() 自动版面分析的结果上进行修正, 采用手工设置区域的方式进行识别是较好的方式。
5.3 自动版面分析
开发者可以直接让灵云OCR能力来自动进行版面分析操作,也即分析出图像中有几个区域,每个区域的位置和类型是什么 (目前自动版面分析不会检测出区域的语种,也即结果都是 OCR_RECOG_LANG_DEFAULT)。
String sRecogConfig = &autoLayout=yes&;
ArrayList &OcrRecogRegion& recogRegion =
OcrRecogResult recogResult = new OcrRecogResult();
nRet =HciCloudOcr.hciOcrRecog(mSessionId, imageData, sRecogCfg, recogRegion, recogResult);
手动指定区域位置是优先的,也即如果recogRegion项不为null,autoLayout的配置项是忽略的。
5.3 自动倾斜校正
灵云OCR能力还可以自动进行倾斜校正的操作,如果图像有倾斜,会自动纠偏后再进行识别。
char * pszConfig = &autoDeskew=yes&;
ArrayList &OcrRecogRegion& recogRegion =
OcrRecogResult recogResult = new OcrRecogResult();
nRet =HciCloudOcr.hciOcrRecog(mSessionId, imageData, sRecogCfg, recogRegion, recogResult);
手动指定区域位置是优先的,也即如果recogRegion项不为null,autoDeskew的配置项是忽略的, 因为如果自动纠偏了,指定区域的位置实际上是会错位的。
自动倾斜校正和自动版面分析可以一起指定。指定时,会先进行纠偏然后进行版面分析,最后再进行识别。
5.4 识别选项
主要的一些识别选项如下:
如果图片中的文字是简体字符,可以设置 recogRange=gb, 可以识别国标一二级汉字,总共6763个汉字。 如果图片中的文字是繁体的,可以设置 recogRange=big5, 可以识别Big5汉字,总共13060汉字。 此选项仅针对 ocr.cloud 能力有效。如果图片中的文字是纯英文的,请直接使用 ocr.cloud.english 能力。
detailResult
缺省情况下 detailResult=no,识别只返回识别结果的文本串。如果设置detailResult=yes,则会返回详细的节点信息。 具体参见 。由于输出详细结果将使传输的数据大大增加,因此,仅在必须的时候再使用此选项。
autoLayout / autoDeskew
自动版面分析和自动倾斜纠正的配置项,缺省情况下都是no,设为yes的情况上面已经做了介绍。
设置二值化的方法,参见。
设置图像是否是截屏图像,参见 。
localProcess
采用云端能力进行识别时,是否先做本地预处理(现在主要是指二值化),这样会减少发往云端的数据流量。 注意,此配置项对于hci_ocr_set_image_buffer() 设置的图像无效,应用如希望使用此功能,必须使用hci_ocr_set_image_by_decode_buffer() 或者 hci_ocr_set_image_by_decode_file() 进行设置。
其它选项请详见 HciCloudOcr. hciOcrRecog() 函数的说明。
6. 版面分析
灵云OCR能力可以完成自动版面分析的工作。
String sConfig = &&;
OcrRecogLayoutAnalysisResult ocrlayoutResult = new OcrRecogLayoutAnalysisResult();
int nRet = HciCloudOcr.hciOcrLayoutAnalysis(session, imageData, sConfig, ocrlayoutResult);
如上所述,用户可以在这里返回的区域信息的基础上进行修正,然后再手工指定区域进行识别。
主要的一些版面分析选项如下:
设置二值化的方法,参见。
设置图像是否是截屏图像,参见 。
localProcess
采用云端能力进行处理时,是否先做本地预处理(现在主要是指二值化)
7. 倾斜校正
灵云OCR能力可以完成倾斜校正的工作。
String sConfig = &&;
OcrRecogDeskewResult ocrDeskewResult =new OcrRecogDeskewResult();
int nRet = HciCloudOcr.hciOcrDeskew(session, imageData, sConfig, ocrDeskewResult);
Log.d(tag, &图片倾斜的角度:& + ocrDeskewResult.getDeskewAngle() + &/100&);
主要的一些倾斜校正选项如下:
adjustImage
如果设为no, 本函数只会返回倾斜角度。如果设为yes,将会进行图像数据的倾斜校正操作,此时再通过 hciOcrGetImage() 函数可以获得校正后的图像数据。
设置二值化的方法,参见。
设置图像是否是截屏图像,参见 。
localProcess
采用云端能力进行处理时,是否先做本地预处理(现在主要是指二值化)
8. 详细结果
灵云OCR模块除了可以返回简单的识别结果文本串外,还能返回详细的结果信息,只需要在配置串中将detailResult设为yes。
详细信息是由一个节点数组组成,节点有如下类型:
页面节点 (OCR_RECOG_NODE_PAGE)
页面节点的信息包括:图像的宽、高,如果经过了自动倾斜校正,其校正的角度。
区域节点 (OCR_RECOG_NODE_REGION)
区域节点的信息包括:区域的类型,区域的矩形坐标,识别此区域时所用的语种。
表格单元节点 (OCR_RECOG_NODE_CELL)
表格单元节点的信息包括:表格单元的外界矩形。
这种类型的节点只有在区域是表格的情况下才会有,否则没有这一级,区域节点下面将直接跟行节点。
行节点 (OCR_RECOG_NODE_LINE)
行节点的信息包括:此行的基线坐标(如果是横排文字,表示上边线,竖排版则表示左边线),此行的大小 (横排表示行高,竖排表示行宽),此行字符的平均大小。
字符节点 (OCR_RECOG_NODE_CHAR)
字符节点的信息包括:识别的字符,候选字符,是否可信(置信度是否足够高),字符的外接矩形坐标。
由于空白字符不使用字符节点表示,因此如果此字符节点前面有一些空白(例如段首),这里也会给出前面的空格字符数。
一个典型的节点数组如下:
区域节点2(表格区域)
表格单元节点1
表格单元节点2
开发者可以利用这里给出的详细信息,进行版面还原的工作。

我要回帖

更多关于 java image filters 的文章

 

随机推荐