Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 黑莓中的光学字符识别?_Blackberry_Ocr - Fatal编程技术网

Blackberry 黑莓中的光学字符识别?

Blackberry 黑莓中的光学字符识别?,blackberry,ocr,Blackberry,Ocr,我正在黑莓的核心应用程序中工作,我需要在其中执行OCR任务 到目前为止,我已经搜索并发现,很少有像ABBY这样的在线API允许读取图像并返回文本文件,但它们不是免费的,经过几次跟踪后,它们会收取一定的费用 我可以使用服务器实现在设备端完全执行光学字符识别吗。 请建议我做这项工作 编辑:我正在使用以下代码 public String serverUrl = "http://cloud.ocrsdk.com"; static final String BOUNDARY = "--------

我正在黑莓的核心应用程序中工作,我需要在其中执行OCR任务

到目前为止,我已经搜索并发现,很少有像ABBY这样的在线API允许读取图像并返回文本文件,但它们不是免费的,经过几次跟踪后,它们会收取一定的费用

我可以使用服务器实现在设备端完全执行光学字符识别吗。 请建议我做这项工作

编辑:我正在使用以下代码

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功能。