
图像识别部分接口Java-API调用示例代码
https://gitee.com/xshuai/ai/不是完整的web项目大家没必要下载运行。复制|下载相关代码即可
- 准备工作 已经创建了图像识别应用并且拿到apikey sercetkey得到AccessToken
- 代码中所用到的Java对象类所在目录https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/pojo/image
- 代码中所用到的工具类 https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/util/baidu 只需要Base64Util FileUtil HttpUtil三个哦
package com.xs.image; import java.net.URLEncoder; import com.alibaba.fastjson.JSON; import com.xs.common.image.ImageAPI; import com.xs.pojo.image.Animal; import com.xs.pojo.image.Plant; import com.xs.util.baidu.Base64Util; import com.xs.util.baidu.FileUtil; import com.xs.util.baidu.HttpUtil; /** * 动物识别Demo * @author 小帅丶 * */ public class AnimalDemo { public static void main(String[] args) throws Exception { //返回字符串 // String result = getAnimalResult("G:/animal.jpg", "24.509012e6b7fd242cff7557c13dc436de.2592000.1512873097.282335-10131029"); // System.out.println(result); //返回java对象 Animal plant = getAnimalBean("图片路径", "自己应用apikey&sercetkey生成的AccessToken"); System.out.println(plant.getResult().get(0).getName()); } /** * 动物识别Demo * @param imagePath * @param accessToken * @return 字符串 * @throws Exception */ public static String getAnimalResult(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.ANIMAL_API, accessToken, param); System.out.println(result); return result; } /** * 动物识别Demo * @param imagePath * @param accessToken * @return LOGO对象 * @throws Exception */ public static Animal getAnimalBean(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.ANIMAL_API, accessToken, param); Animal animal = JSON.parseObject(result,Animal.class); System.out.println(result); return animal; } }
package com.xs.image; import java.net.URLEncoder; import com.alibaba.fastjson.JSON; import com.xs.common.image.ImageAPI; import com.xs.pojo.image.Plant; import com.xs.util.baidu.Base64Util; import com.xs.util.baidu.FileUtil; import com.xs.util.baidu.HttpUtil; /** * 植物识别 * @author 小帅丶 * */ public class PlantDemo { public static void main(String[] args) throws Exception { //返回字符串 // String result = getPlantResult("图片路径", "自己应用apikey&sercetkey生成的AccessToken"); // System.out.println(result); //返回java对象 // Plant plant = getPlantBean("图片路径", "自己应用apikey&sercetkey生成的AccessToken"); // System.out.println(plant.getResult().get(0).getName()); } /** * 植物识别Demo * @param imagePath * @param accessToken * @return 字符串 * @throws Exception */ public static String getPlantResult(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.PLANT_API, accessToken, param); System.out.println(result); return result; } /** * 植物识别Demo * @param imagePath * @param accessToken * @return LOGO对象 * @throws Exception */ public static Plant getPlantBean(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.PLANT_API, accessToken, param); Plant plant = JSON.parseObject(result,Plant.class); System.out.println(result); return plant; } }
package com.xs.image; import java.net.URLEncoder; import com.alibaba.fastjson.JSON; import com.xs.common.image.ImageAPI; import com.xs.pojo.image.Animal; import com.xs.pojo.image.CarMode; import com.xs.util.baidu.Base64Util; import com.xs.util.baidu.FileUtil; import com.xs.util.baidu.HttpUtil; /** * 车型识别Demo * @author 小帅丶 * */ public class CarModelDemo { public static void main(String[] args) throws Exception { //返回字符串 // String result = getCarModeResult("图片路径", "自己应用apikey&sercetkey生成的AccessToken"); // System.out.println(result); //返回java对象 CarMode plant = getCarModeBean("图片路径", "自己应用apikey&sercetkey生成的AccessToken"); System.out.println(plant.getResult().get(0).getName()); } /** * 车型识别Demo * @param imagePath * @param accessToken * @return 字符串 * @throws Exception */ public static String getCarModeResult(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.CAR_API, accessToken, param); System.out.println(result); return result; } /** * 车型识别Demo * @param imagePath * @param accessToken * @return CarMode对象 * @throws Exception */ public static CarMode getCarModeBean(String imagePath,String accessToken) throws Exception{ byte[] imgData = FileUtil.readFileByBytes(imagePath); String imgStr = Base64Util.encode(imgData); String param = "image=" + URLEncoder.encode(imgStr,"UTF-8"); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String result = HttpUtil.post(ImageAPI.CAR_API, accessToken, param); CarMode carMode = JSON.parseObject(result,CarMode.class); System.out.println(result); return carMode; } }
如何获取AccessToken:http://ai.baidu.com/forum/topic/show/496505
官网文档中心:http://ai.baidu.com/docs#/ImageClassify-API/top
可以体验以上功能的微信小程序
