在java应用程序中,我需要使用目前在python中实现的特定图像处理算法。知道这个脚本使用Numpy库之后,最好的方法是什么?
我已经尝试过使用jythonc编译器将脚本编译成java,但它似乎不支持像Numpy这样的本地库依赖。我也尝试过使用Jepp,但我在导入Numpy时也得到了一个ImportError。
有什么建议吗?
发布于 2011-10-25 23:58:06
如果你使用的是Numpy,你可能只能使用C Python,因为它是一个编译的扩展。我建议将图像保存到磁盘上,可能是作为临时文件,然后调用Python作为子进程。如果您正在处理二进制数据,您甚至可以尝试在内存中映射Java中的数据,并将其传入到子进程的路径中。
或者,根据您的环境,您可以在Python中设置一个简单的数据处理服务器,该服务器接受请求并返回处理过的数据。
发布于 2011-10-26 00:15:01
虽然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 )。
有了这些,你就可以用c构建一个漂亮的python <--> java桥,并传递一个指向图像数据的指针(这将比在硬盘上写入和读取它更快)。
https://stackoverflow.com/questions/7891586
复制相似问题