簡體   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