Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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
通过命令行调用与通过JNI调用 我需要调用java应用服务器中的TeSeSertOCR(C++中的一个开放源码库,它可以进行光学字符识别)。现在,使用Runtime.exec()运行可执行文件非常简单。基本逻辑是 将当前保存在内存中的图像保存到文件(a.tif) 将图像文件名传递给tesseract命令行程序 使用FileReader从Java读入输出文本文件_Java_Java Native Interface_Ocr_Tesseract - Fatal编程技术网

通过命令行调用与通过JNI调用 我需要调用java应用服务器中的TeSeSertOCR(C++中的一个开放源码库,它可以进行光学字符识别)。现在,使用Runtime.exec()运行可执行文件非常简单。基本逻辑是 将当前保存在内存中的图像保存到文件(a.tif) 将图像文件名传递给tesseract命令行程序 使用FileReader从Java读入输出文本文件

通过命令行调用与通过JNI调用 我需要调用java应用服务器中的TeSeSertOCR(C++中的一个开放源码库,它可以进行光学字符识别)。现在,使用Runtime.exec()运行可执行文件非常简单。基本逻辑是 将当前保存在内存中的图像保存到文件(a.tif) 将图像文件名传递给tesseract命令行程序 使用FileReader从Java读入输出文本文件,java,java-native-interface,ocr,tesseract,Java,Java Native Interface,Ocr,Tesseract,通过为Tesseract编写一个JNI包装器,我可能会在性能方面得到多少改进?不幸的是,Linux中没有一个开源的JNI包装器。我必须自己做,我想知道这样做的好处是否值得开发成本。很难说这样做是否值得。如果您假设如果通过JNI在进程中完成,OCR代码可以直接访问图像数据,而无需将其写入文件,那么它肯定会消除任何磁盘I/O约束 我建议使用更简单的方法,只有在性能不可接受时才使用JNI选项。至少那时你可以做一些基准测试,并估计你可能实现的性能提升。我同意tweakt。如果没有性能原因,请不要使用JN

通过为Tesseract编写一个JNI包装器,我可能会在性能方面得到多少改进?不幸的是,Linux中没有一个开源的JNI包装器。我必须自己做,我想知道这样做的好处是否值得开发成本。

很难说这样做是否值得。如果您假设如果通过JNI在进程中完成,OCR代码可以直接访问图像数据,而无需将其写入文件,那么它肯定会消除任何磁盘I/O约束


我建议使用更简单的方法,只有在性能不可接受时才使用JNI选项。至少那时你可以做一些基准测试,并估计你可能实现的性能提升。

我同意tweakt。如果没有性能原因,请不要使用JNI。如果在JNI层或OCR本身中存在内存泄漏甚至崩溃的可能性,那么如果使用JNI调用,应用程序的稳定性也可能会受到威胁。如果您通过命令行界面使用它,这将永远不会发生(所有内存将在程序退出时释放,所有异常程序终止都可以在调用方代码中检查)。

如果您使用自己的包装器,我建议您签出。它将允许您调用大多数只编写Java代码的“本机”库,并将为您提供比原始JNI更多的安全帮助。JNA适用于大多数平台。

感谢我没有听说过JNA的建议。我将研究一下任何需要本地绑定的项目。这里提到了另外两个映射库(JInvoke和SWIG):JNA不适合C++,而是用C,TestSerct迁移到C++。JNA非常方便,但并非适用于所有应用程序。请粘贴在Runtime.exec()中用于运行tesseract命令的命令。我想不出来。。。