利用Java实现人像分割(去除背景,保留人像 )
2020-02-02 01:51
1806 查看
1.首先,使用JavaSDK,快速实现人像的分割。
我用的是使用maven依赖,(前提是项目中有用的maven):
[code]<dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</artifactId> <version>4.11.3</version> </dependency>
也可以直接使用jar包(复制网上的,未亲测):
1.在官方的网站上下载JavaSDK;
2.把jar包拉到工程中;
3.在设置中“工程-->Properties-->Java Build Path --> Add JARs”;
4.添加SDK工具包
aip-java-sdk-version.jar和第三方依赖工具包
json-20160810.jar
slf4j-api-1.7.25.jar
slf4j-simple-1.7.25.jar(可选)。
其中,
version为版本号,添加完成后,用户就可以在工程中使用BodyAnalysis Java SDK。
2.然后新建AipBodyAnalysis
在这之前,需要你在百度云上申请自己的App ID,API Key,Secret Key。
1)登录百度智能云账号,找到管理控制台,创建应用
2)点击创建应用,
3)完成之后,会得到你想要的AppId、API Key、Secret Key。
好了,可以继续了。
创建一个类:
[code]import java.util.HashMap; import org.json.JSONObject; import com.baidu.aip.bodyanalysis.AipBodyAnalysis; public class Sample { //设置APPID/AK/SK public static final String APP_ID = "App ID";//自己的App ID public static final String API_KEY = "Api Key";//自己的 Api Key public static final String SECRET_KEY = "Secret Key";//自己的Secret Key public static String sample(AipBodyAnalysis client) { // 传入可选参数调用接口 HashMap<String, String> options = new HashMap<String, String>(); options.put("type", "foreground"); // 参数为本地路径 String image = "temp.jpg";//图片的路径 JSONObject res = client.bodySeg(image, options); return res.get("foreground").toString(); } }
在用到的地方:
[code]AipBodyAnalysis c = new AipBodyAnalysis(Sample.APP_ID, Sample.API_KEY, Sample.SECRET_KEY); String sam = Sample.sample(c); System.out.println(sam);
打印出来的sam的值,即为二进制的图片值 ,
我的代码中是:return res.get("foreground").toString();
所以返回的只有foreground的值。
如果想要展示出图片,需要加上base64的前缀:“data:image/jpeg;base64,”
请求参数解释:
人像分割 返回数据参数:
效果图:
例子中用的图片不太好,因为里面有不止一个人,单人照片效果会更好。
共同学习,共同进步。
--来自IT 小小学生一枚
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java_利用多线程实现窗口组件背景图大小按比例变化
- java 利用String.trim()函数实现右侧去除空格
- 数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现
- matlap实现肺实质区域初始分割,去除肺部气管及背景
- 利用OpenCV的Grabcut()函数实现图像的前景与背景的分割-并对Grabcut()作详细介绍
- java 利用String.trim()函数实现右侧去除空格
- 利用java实现二维码和背景图的合并
- 利用WSDL2JAVA实现JAVA调用.Net的Web Services(1)
- Java 实践(Netbeans开发)——StringTokenizer实现数组分割
- 三个利用Java实现zip压缩/解压缩方法
- 用Java简单实现文件分割与合并
- 利用Java脚本实现弹出窗口后,按确定实现跳转
- 在java中利用动态编译实现eval
- 利用Java实现zip压缩/解压缩
- 利用java实现数据结构中常用的插入排序和快速排序算法
- Java实现利用搜索引擎收集网址的程序
- 利用Java实现zip压缩/解压缩
- Java实现利用搜索引擎收集网址的程序
- 利用JavaGroups实现可视化购物车
- 利用Java实现串口全双工通讯