Blackberry 黑莓中的光学字符识别?
我正在黑莓的核心应用程序中工作,我需要在其中执行OCR任务 到目前为止,我已经搜索并发现,很少有像ABBY这样的在线API允许读取图像并返回文本文件,但它们不是免费的,经过几次跟踪后,它们会收取一定的费用 我可以使用服务器实现在设备端完全执行光学字符识别吗。 请建议我做这项工作 编辑:我正在使用以下代码Blackberry 黑莓中的光学字符识别?,blackberry,ocr,Blackberry,Ocr,我正在黑莓的核心应用程序中工作,我需要在其中执行OCR任务 到目前为止,我已经搜索并发现,很少有像ABBY这样的在线API允许读取图像并返回文本文件,但它们不是免费的,经过几次跟踪后,它们会收取一定的费用 我可以使用服务器实现在设备端完全执行光学字符识别吗。 请建议我做这项工作 编辑:我正在使用以下代码 public String serverUrl = "http://cloud.ocrsdk.com"; static final String BOUNDARY = "--------
public String serverUrl = "http://cloud.ocrsdk.com";
static final String BOUNDARY = "----------V2ymHFg03ehbqgZCaKO6jy";
public byte[] send() throws Exception
{
HttpConnection hc = null;
InputStream is = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] res = null;
try
{
hc = (HttpConnection) Connector.open(serverUrl+"/processImage/"+"language=en&exportFormat=txt");
hc.setRequestProperty("Content-Type", "multipart/image-JPG; boundary=" + BOUNDARY);
/*hc = (HttpConnection) Connector.open(SERVICE_URL);
hc.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
hc.setRequestProperty(PARAM_IMAGE, "");
hc.setRequestProperty(PARAM_LANGUAGE, lang);
hc.setRequestProperty(PARAM_APIKEY, key);*/
hc.setRequestMethod(HttpConnection.POST);
OutputStream dout = hc.openOutputStream();
dout.write(raw);
dout.close();
int ch;
StringBuffer sb= new StringBuffer();
is = hc.openInputStream();
while ((ch = is.read()) != -1)
{
bos.write(ch);
sb.append(ch);
}
System.out.println(sb);
res = bos.toByteArray();
}
catch(Exception e){
e.printStackTrace();
}
finally
{
try
{
if(bos != null)
bos.close();
if(is != null)
is.close();
if(hc != null)
hc.close();
}
catch(Exception e2)
{
e2.printStackTrace();
}
}
return res;
}
但即使有了这段代码,它也不起作用。在发出HTTP请求后,我得到200作为响应代码。
但并没有得到文本预期的完美响应。作为回应,我得到了ABBYY的错误页面
请建议我:(如果我理解正确,您希望为BlackBerry设备实现自己的OCR应用程序,并且您希望将图像发送到服务器,识别图像并将文本文件发送回设备 有一个开源OCR实现,请查看以下链接: 使用此信息实现OCR服务器功能。BlackBerry客户端功能将非常简单。只需使用
HTTPConnection
class和stream类向服务器上传/下载文件
编辑:
注意到openocr.org上没有直接的源代码下载,他们需要发送电子邮件请求cuneiform@cognitive.ru他们会考虑的。我认为这不是一个方便的方式。
例如,让我们检查另一个源代码。通过链接,您可以下载源代码并构建OCR应用程序。然后为该应用程序实现通过HTTP工作的服务器包装器,并编写blackberry客户端,通过HTTP将图像文件上载到此服务器,并获取结果文本文件。我完成了OCR任务 我从GitHub for Java获得的代码不完整,或者可能无法从我的角度工作。 我已经在我的PHP服务器上执行了OCR功能的实现。
它工作顺利。你好,Rafael,谢谢你这么好的指导。我还有一个问题,我们是否创建自己的服务器来实现OCR功能?或者我们使用这个openOCR以图像形式或base64字节发送请求,并以.txt格式的文档等待响应。请建议我。openOCR不是服务器应用程序,它不是我的它是一个没有客户机-服务器交互功能的独立应用程序。在我看来,您需要构建OpenOCR应用程序,实现服务器功能,从客户机获取请求并与OpenOCR一起工作(在java中运行Runtime.exec(),等等)并向移动客户端发送识别的文本文件。Rafael,我刚才正试图从您提供的链接中获取一些信息。它要求创建我的帐户。但我还没有得到确认。此外,我现在有点困惑。作为一名Blackberry开发人员,我需要做什么来实现此功能?:(几次点击后它是一个付费帐户吗?Tesseract OCR没有提供任何Java代码。我试图通过获取异常来与ABBY合作,在发出请求时不知道在哪里使用我的应用程序ID和paasword。还通过再次获取异常来尝试OCR online,但代码不起作用。问题是,我仍然在搜索一个可信的API,而ch我可以用于我的应用程序。请建议我。我认为应该可以编译Tesseract OCR引擎,并在服务器上使用java应用程序调用必要的Tesseract功能。