首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pyboof:如何在java中使用python包装器?

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

Stack Overflow用户
提问于 2018-10-01 23:53:24
回答 1查看 622关注 0票数 0

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

代码语言:javascript
复制
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包装器。

EN

回答 1

Stack Overflow用户

发布于 2018-10-02 01:09:38

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

代码语言:javascript
复制
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})

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

代码语言:javascript
复制
pr.waitFor()

如果期望脚本会写一些输出或读取一些输入,你应该读取输出并为它的输入写一些东西。

下面的示例将一些内容写入subprocess的输入流:

代码语言:javascript
复制
BufferedWriter writer = new BufferedWriter(
    new OutputStreamWriter(p.getOutputStream()));

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

然而,PyBoof是计算机视觉库BoofCV (相反方向,从Python到调用Java)的包装器,因为它是在它的GitHub页面上编写的,您可以直接从Java使用BoofCV库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52594738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档