[英]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.