Java调用Python写的tensorflow函数
来源:互联网 发布:联合国五大流氓 知乎 编辑:程序博客网 时间:2024/06/05 20:47
最新做一个项目,需要Java调用我们用Python写的接口,print 结果以后,他那边通过流获取,再展示。
具体步骤如下:
1 python 使用 argParse 传入参数
OpenCV2获取轮廓主要是用cv2.findContours
if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("-v", "--verbosity", help="increase output verbosity") # 上面一句是添加参数 args = parser.parse_args() if args.verbosity: image=image_cut(args.verbosity) #image_cut是示例方法,我们到时候就调用执行这个方法,args.verbosity是获取的输入参数 print(image.shape)
argparse 是python 的获取参数方法,具体看参考他的博客:python argparse用法总结
2 使用Python解释器在CMD执行
当编写好Python后,存为.py文件,这时我们需要在cmd中执行,同时,为了保证在哪里都能执行,我用了绝对路径
python d:/Code/digitalOCR/image_cut.py -v "D:/Code/digitalOCR/scan1.jpg"#特别注意的是,参数后的路径需要双引号!以前我用双引号,在IDE可以执行,但是在cmd中不能执行,很奇怪!
3 Java获取python 的输出
通过Java调用cmd,即可获得Python的输出,其实还有其他方法调用Python ,但是我的Python中调用了第三方的包,如tensorflow,其他方法会报错,说无法引用tensflowflow。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList;public class hello2 { public static void main(String[] args) { Process p; //test.bat中的命令是ipconfig/all String cmd="python d:/Code/digitalOCR/image_cut.py -v \"D:/Code/digitalOCR/scan1.jpg\""; System.out.println(cmd); try { //执行命令 p = Runtime.getRuntime().exec(cmd); //取得命令结果的输出流 InputStream fis=p.getInputStream(); //用一个读输出流类去读 InputStreamReader isr=new InputStreamReader(fis); //用缓冲器读行 BufferedReader br=new BufferedReader(isr); String line=null; //直到读完为止 while((line=br.readLine())!=null) { //System.out.println(line); ArrayList List = new ArrayList(); List.add(line); System.out.println(List); System.out.println("ok"); } } catch (IOException e) { e.printStackTrace(); } } }
这样就会读到图片并输出
python d:/Code/digitalOCR/img_cut_argparse.py -v "D:/Code/digitalOCR/scan1.jpg"[[[255 255 255 ..., 255 255 255]]ok[ [255 255 255 ..., 255 255 255]]ok[ [255 255 255 ..., 255 255 255]]ok[ ..., ]ok[ [255 255 255 ..., 255 255 255]]ok[ [255 255 255 ..., 255 255 255]]ok[ [255 255 255 ..., 255 255 255]]]ok[D:/Code/digitalOCR/scan1.jpg]ok
阅读全文
0 0
- Java调用Python写的tensorflow函数
- 如何调用自己写的python函数?
- Python中如何调用自己写的函数
- python调用java函数
- java调用python函数
- c++调用python训练的tensorflow模型
- java中如何使用JNI调用C++写的函数
- JAVA程序调用PLSQL里边写的小函数
- Matlab调用Netbeans写好的java函数
- java调用tensorflow
- 一段用Python语言的Ctypes模块调用系统api函数写的rsa加密代码
- 在python中调用自己写的方法或函数function
- python中GIL问题(多线程问题,调用的函数用C语言写)
- tensorflow初次接触记录,我用python写的tensorflow第一个模型
- python 调用c写的dll/so
- Python如何调用自己写的包
- Python调用PHP的函数
- C调用Python的函数
- pthread_mutex_lock(&lock); 没有执行init 动作
- Appium 测试 Android 切换Wenview 报错问题
- MySql 编码方式修改
- spring boot 入门第一章
- 【LeetCode算法练习(C++)】Combination Sum II
- Java调用Python写的tensorflow函数
- General Algorithm
- 机器学习的基础概念
- 算法之堆排序(最大堆c++实现)
- jmeter1- 认识jmeter
- 重写和重载
- java 线程池
- ThinkPHP5 单独运行某个文件
- 网络流杂题