java 营业执照图片内容识别

准备工作:
1.现在百度云上注册一个账号,创建一个图片识别的应用,大概有50000次免费使用,短期使用是没有问题的。
2.创建应用后,可以下载jar包在这里插入图片描述
和查看说明文档。
3.实现代码

代码如下

1.营业执照实体类

package com.res.pc.idcard;

public class Licence {
private String name;//法人姓名
private String creditNo;//统一信用代码
private String company;//公司名称
private String effect;//营业期限
private String scope;//经营范围
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCreditNo() {
return creditNo;
}
public void setCreditNo(String creditNo) {
this.creditNo = creditNo;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getEffect() {
return effect;
}
public void setEffect(String effect) {
this.effect = effect;
}
public String getScope() {
return scope;
}
public void setScope(String scope) {
this.scope = scope;
}

}

2.营业执照图片识别解析

package com.res.pc.idcard;

import java.util.HashMap;
import org.json.JSONObject;
import com.baidu.aip.ocr.AipOcr;

public class ParseLicence {
//设置APPID/AK/SK
public static final String APP_ID = “14775163”;
public static final String API_KEY = “ftA9anCA9cQ29iS9WVrdOCmL”;
public static final String SECRET_KEY = “ZTsYVo3cBZvhhM9lGac0HpR5xGSA99aa”;
public static final String proxy_host = “aip.baidubce.com”;

//识别营业执照图片内容
public static Licence parseLicence(String path){
	// 初始化一个AipOcr
    AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
    Licence licence = new Licence();
    // 可选:设置网络连接参数
    client.setConnectionTimeoutInMillis(2000);
    client.setSocketTimeoutInMillis(60000);
    //System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
    JSONObject res2 = client.basicGeneral(path, new HashMap<String, String>());
    org.json.JSONArray res = (org.json.JSONArray) res2.get("words_result");
    if(res.length()>0){
    for(int key=0;key<res.length();key++){
   	 JSONObject object = (JSONObject) res.get(key);
   	 String value = object.getString("words");
    if(value.startsWith("法定代表人")){
    	licence.setName(value.substring(5,value.length()));
    }
    if(value.trim().startsWith("名称")){
    	licence.setCompany(value.substring(2,value.length()));
    }else if(value.trim().startsWith("称")){
    	licence.setCompany(value.substring(1,value.length()));
    }
    if(value.startsWith("统一社会信用代码")){
    	licence.setCreditNo(value.substring(8,value.length()-5));
    }
    if(value.startsWith("营业期限")){
    	licence.setEffect(value.substring(4,value.length()));
    }
    if(value.startsWith("经营范围")){
    	licence.setScope(value.substring(4,value.length()));
    }
    }
}
    net.sf.json.JSONObject object = net.sf.json.JSONObject.fromObject(licence);
    //System.out.println(object.toString());
    return licence;
    
}
public static boolean checkLicence(String path,String company,String name,String credit){
	boolean flag = false;
	Licence licence = parseLicence(path);
	if(path == null || company == null || name == null || credit == null){
		return  false;
	}
	if(company.equals(licence.getCompany())&&name.equals(licence.getName())&&credit.equals(licence.getCreditNo())){
		flag = true;
	}
	return flag;
}

//测试
public static void main(String[] args) {
   
	String yyzz = "d:/yyzz.jpg";
	//parseLicence(yyzz);
	//认证内容
    boolean flag = checkLicence(yyzz,"公司名称","法定代表人","统一信用代码");
	//System.out.println(flag);
}

}
至此,代码结束,有什么问题可以加QQ:463653370

猜你喜欢

转载自blog.csdn.net/liswing86/article/details/84580804