繁体   English   中英

Pyboof:如何在Java中使用python包装器?

[英]Pyboof: How to use python wrappers in java?

我已经下载了pyboof,它们是java中的python包装器。 所以,我的问题是我到底该如何使用它们? 我编写了一个简单的程序,该程序打开命令外壳并从那里运行包装程序。 我的程序是上面的:

package alltestshere;

import java.awt.image.BufferedImage;
import java.io.* ;

import boofcv.io.UtilIO;
import boofcv.io.image.UtilImageIO;

public class PythonCaller {

    public static void main (String [] args) throws IOException {



        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("cmd set PATH = C:\\Python27");
        Process pr2 = rt.exec("cmd python27 C:\\Users\\Caterina\\Downloads\\PyBoof-master\\PyBoof-master\\examples\\blur_image.py");
        Process pr3 = rt.exec("cmd blur_image.py");


        }
  }  

但是当我运行它时,什么也没有发生。 我也尝试在python shell中运行“ blur_image” py文件,但是当我想查看图片的变化(新图片)时,它只是打开了文件。 那么,这是使用python包装器的错误方法吗?还是我需要做更多的事情才能使用包装器? 可以在这里https://github.com/lessthanoptimal/PyBoof/blob/master/examples/blur_image.py找到blur_image包装器。

从Java运行python的脚本如下所示:

String script = "C:\\Users\\Caterina\\Downloads\\PyBoof-master\\PyBoof-master\\examples\\blur_image.py";
String python_app = "python27"
Process pr = rt.exec(new String[]{python_app, script})

进程运行后,您需要等待以下操作完成:

pr.waitFor()

如果期望脚本会写入一些输出或读取一些输入,则应该读取输出并为其输入编写一些内容。

以下示例将一些内容写入子流程的输入流:

BufferedWriter writer = new BufferedWriter(
    new OutputStreamWriter(p.getOutputStream()));

writer.write("something");
writer.newLine();
writer.close();

尽管如此, PyBoof是在其GitHub页面上编写的计算机视觉库BoofCV (从Python到Java的相反方向)的Python包装,您可以直接从Java使用BoofCV库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM