【图像处理-对比度增强】JavaAPI示例代码
置顶
756665228 发布于2018-09-03 14:09 浏览:338 回复:4
2
收藏
最后编辑于2018-11-07
  • 属于内测接口,需要申请哦。
  • 接口说明:https://ai.baidu.com/docs#/ImageProcessing-API/e38f1e5c

 

  • 需要用到的第三方jar
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

 

调整过暗或者过亮图像的对比度,使图像更加鲜明。 

-----------------------------------------------------下面开始代码----------------------------------------------------

  • Java示例代码
import java.net.URLEncoder;

import com.alibaba.fastjson.JSON;
import com.xs.pojo.imageprocess.ImageProcessGeneralBean;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;
/**
 * 图像对比度增强
 * @author 小帅丶
 * 工具类代码下载:http://aixiaoshuai.mydoc.io/?t=234826
 */
public class ContrastEnhanceAPISample {
	//图像对比度增强接口URL
	public static String CONTRAST_ENHANCE_URL="https://aip.baidubce.com/rest/2.0/image-classify/v1/contrast_enhance";
	public static void main(String[] args) throws Exception {
		String accessToken = "自己应用获取的AccessToken";
		String imagefilePath = "G:/x5.jpg";
		ImageProcessGeneralBean bean = getContrastEnhanceBean(imagefilePath, accessToken);
		Base64Util.GenerateImage(bean.getImage(), "G:/conhn.jpg");
	}
	/**
	 * 图像对比度增强Demo
	 * @param imagePath 图片本地路径
	 * @param accessToken 应用token
	 * @return 字符串
	 * @throws Exception
	 */
	public static String getContrastEnhanceResult(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(CONTRAST_ENHANCE_URL, accessToken, param);
        System.out.println(result);
        return result;
	}
	/**
	 * 图像对比度增强Demo
	 * @param imagePath 图片本地路径
	 * @param accessToken 应用token
	 * @return ImageProcessGeneralBean
	 * @throws Exception
	 */
	public static ImageProcessGeneralBean getContrastEnhanceBean(String imagePath,String accessToken) throws Exception{
		String result = getContrastEnhanceResult(imagePath,accessToken);
		ImageProcessGeneralBean imageProcessGeneralBean = JSON.parseObject(result,ImageProcessGeneralBean.class);
		return imageProcessGeneralBean;
	}
}
  • JavaBean对象ImageProcessGeneralBean
/**
 * 图像处理接口返回的bean对象
 * @author 小帅丶
 */
public class ImageProcessGeneralBean {
	private long log_id;//唯一的log id,用于问题定位
	private String image;//base64编码图片
	public long getLog_id() {
		return log_id;
	}
	public void setLog_id(long log_id) {
		this.log_id = log_id;
	}
	public String getImage() {
		return image;
	}
	public void setImage(String image) {
		this.image = image;
	}
}
  • 看一下原图和处理后的图片的对比

接口应该还在优化。整理是看不出比较明显的变化

收藏
点赞
2
个赞
共4条回复 最后由我就是九候回复于2018-11-07 12:41
#5我就是九候回复于2018-11-07 12:41:34

对比度增强代码分享啦,真好

0
#4756665228回复于2018-11-06 16:00:01
#3 137******95回复
对比很清晰吖

找比较暗的图片效果比较好。本身就很清晰。并不会有多大改变

1
#3137******95回复于2018-11-06 12:24:52

对比很清晰吖

0
1
#215029288076回复于2018-09-23 09:14:35

不错不错

0
TOP
切换版块