com.baidu.aip.imageprocess.AipImageProcess Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-sdk Show documentation
Show all versions of java-sdk Show documentation
The AIP SDK for Java provides Java APIs for all of AI APIs.
/*
* Copyright 2017 Baidu, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
package com.baidu.aip.imageprocess;
import com.baidu.aip.client.BaseClient;
import com.baidu.aip.error.AipError;
import com.baidu.aip.http.AipRequest;
import com.baidu.aip.util.Base64Util;
import com.baidu.aip.util.Util;
import org.json.JSONObject;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
public class AipImageProcess extends BaseClient {
public AipImageProcess(String appId, String apiKey, String secretKey) {
super(appId, apiKey, secretKey);
}
/**
* 图像无损放大接口
* 输入一张图片,可以在尽量保持图像质量的条件下,将图像在长宽方向各放大两倍。
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject imageQualityEnhance(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.IMAGE_QUALITY_ENHANCE);
postOperation(request);
return requestServer(request);
}
/**
* 图像无损放大接口
* 输入一张图片,可以在尽量保持图像质量的条件下,将图像在长宽方向各放大两倍。
*
* @param image - 本地图片路径
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject imageQualityEnhance(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return imageQualityEnhance(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像去雾接口
* 对浓雾天气下拍摄,导致细节无法辨认的图像进行去雾处理,还原更清晰真实的图像。
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject dehaze(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.DEHAZE);
postOperation(request);
return requestServer(request);
}
/**
* 图像去雾接口
* 对浓雾天气下拍摄,导致细节无法辨认的图像进行去雾处理,还原更清晰真实的图像。
*
* @param image - 本地图片路径
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject dehaze(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return dehaze(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像对比度增强接口
* 调整过暗或者过亮图像的对比度,使图像更加鲜明。
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject contrastEnhance(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.CONTRAST_ENHANCE);
postOperation(request);
return requestServer(request);
}
/**
* 图像对比度增强接口
* 调整过暗或者过亮图像的对比度,使图像更加鲜明。
*
* @param image - 本地图片路径
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject contrastEnhance(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return contrastEnhance(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 黑白图像上色接口
* 智能识别黑白图像内容并填充色彩,使黑白图像变得鲜活。
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject colourize(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.COLOURIZE);
postOperation(request);
return requestServer(request);
}
/**
* 黑白图像上色接口
* 智能识别黑白图像内容并填充色彩,使黑白图像变得鲜活。
*
* @param image - 本地图片路径
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject colourize(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return colourize(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 拉伸图像恢复接口
* 自动识别过度拉伸的图像,将图像内容恢复成正常比例。
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject stretchRestore(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.STRETCH_RESTORE);
postOperation(request);
return requestServer(request);
}
/**
* 拉伸图像恢复接口
* 自动识别过度拉伸的图像,将图像内容恢复成正常比例。
*
* @param image - 本地图片路径
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject stretchRestore(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return stretchRestore(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像风格转换
*
* @param image - 图像地址
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject styleTrans(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return styleTrans(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像风格转换
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject styleTrans(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.STYLETRANS);
postOperation(request);
return requestServer(request);
}
/**
* 图像修复
*
* @param image - 图像地址
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject inpaintingByMask(String image, List list, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return inpaintingByMask(data, list, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像修复
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject inpaintingByMask(byte[] image, List list, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
request.addBody("rectangle", list);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.INPAINTING);
postOperation(request);
return requestServer(request);
}
/**
* 图像清晰度增强
*
* @param image - 图像地址
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject imageDefinitionEnhance(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return imageDefinitionEnhance(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 图像清晰度增强
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject imageDefinitionEnhance(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.IMAGEDEFINITIONENHANCE);
postOperation(request);
return requestServer(request);
}
/**
* 人像动漫化
*
* @param image - 图像地址
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject selfieAnime(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return selfieAnime(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 人像动漫化
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject selfieAnime(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.SELFIEANIME);
postOperation(request);
return requestServer(request);
}
/**
* 天空分割
*
* @param image - 图像地址
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject skySeg(String image, HashMap options) {
try {
byte[] data = Util.readFileByBytes(image);
return skySeg(data, options);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
/**
* 天空分割
*
* @param image - 二进制图像数据
* @param options - 可选参数对象,key: value都为string类型
* options - options列表:
* @return JSONObject
*/
public JSONObject skySeg(byte[] image, HashMap options) {
AipRequest request = new AipRequest();
preOperation(request);
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(ImageProcessConsts.SKYSEG);
postOperation(request);
return requestServer(request);
}
}