在java应用程序中,我需要使用当前在python中实现的特定图像处理算法。 知道这个脚本使用Numpy库会有什么最好的方法?
我似乎试图使用jythonc编译器将脚本编译为java,但它似乎不支持像Numpy这样的本机库的依赖。 我也尝试使用Jepp,但是在导入Numpy时我也得到了一个ImportError。
有什么建议吗?
答案 0 :(得分:3)
如果你正在使用Numpy,你可能只需要使用C Python,因为它是一个已编译的扩展。我建议将映像保存到磁盘,也许作为临时文件,然后将Python作为子进程调用。如果您正在处理二进制数据,您甚至可以尝试使用Java对数据进行内存映射,并将路径传入子进程。
或者,根据您的具体情况,您可以在Python中设置一个简单的数据处理服务器,它接受请求并返回已处理的数据。
答案 1 :(得分:0)
虽然Joe的回答可能很简单,但如果图像很大(2次完整的写入和读取),则会出现性能问题。我不是Java专家,但是根据http://wiki.cacr.caltech.edu/danse/index.php/Communication_between_Java_and_Python#Communication_through_bindings,你可以开发出来的c - < - > java绑定。您可以使用python执行相同的操作(如果您不想学习python c api,可以使用ctypes或cython)。
有了这些,你可以为自己建立一个漂亮的python< - > c中的java桥接器,并传递指向图像数据的指针(这将比在硬盘驱动器上写入和读取它更快)。
答案 2 :(得分:0)