首页 > 作文

百度图片识别

更新时间:2023-03-09 06:49:22 阅读: 评论:0

鬼节由来-王者荣耀野怪

百度图片识别
2023年3月9日发(作者:肉丸子的制作方法)

Java基于百度API的图⽚⽂字识别免费源码和jar包

1.准备⼯作(jdk1.8)

使⽤之前需要获取对应的项⽬API_KEY,SECRET_KEY,这些参数在使⽤API的时候必须⽤到,⽤于⽣成access_token.

如何获取这些参数?

登陆后创建⼀个应⽤

点击创建应⽤,填⼊对应的信息.点击应⽤列表就可以得到API_KEY,SECRET_KEY了

2.下载java的SDK,并将jar包引⼊项⽬

预览:

;

2

edReader;

treamReader;

LConnection;

;

;

;

9

ject;

11

12/**

13*

14*@authorcsh

15*

16*获取token类

17*/

18publicclassAuthService{

19

20/**

21*获取权限token

22*@return返回token

23*/

24

25publicstaticStringgetAuth(){

26//官⽹获取的APIKey更新为你注册的

27StringclientId="frNrube3CEybwGiXUOgrYH23";

28//官⽹获取的SecretKey更新为你注册的

29StringclientSecret="05He2i4heaL21TgPbQeqWrt3u8Qh4RCl";

30returngetAuth(clientId,clientSecret);

31}

32

33/**

34*获取API访问token该token有⼀定的有效期,需要⾃⾏管理,当失效时需重新获取.

35*

36*@paramak-百度云官⽹获取的APIKey

37*@paramsk-百度云官⽹获取的SecuretKey

38*/

39publicstaticStringgetAuth(Stringak,Stringsk){

40//获取token地址

41StringauthHost="/oauth/2.0/token?";

42StringgetAccessTokenUrl=authHost

43//_type为固定参数

44+"grant_type=client_credentials"

45//2.官⽹获取的APIKey

46+"&client_id="+ak

47//3.官⽹获取的SecretKey

48+"&client_cret="+sk;

49try{

50URLrealUrl=newURL(getAccessTokenUrl);

51//打开和URL之间的连接

52HttpURLConnectionconnection=(HttpURLConnection)nnection();

uestMethod("GET");

t();

55//获取所有响应头字段

56Map>map=derFields();

57//遍历所有的响应头字段

58for(Stringkey:()){

n(key+"--->"+(key));

60}

61//定义BufferedReader输⼊流来读取URL的响应

62BufferedReaderin=newBufferedReader(newInputStreamReader(utStream()));

63Stringresult="";

64Stringline;

65while((line=ne())!=null){

66result+=line;

67}

68/**

69*返回结果⽰例

70*/

n("result:"+result);

72JSONObjectjsonObject=newJSONObject(result);

73Stringaccess_token=ing("access_token");

74returnaccess_token;

75}catch(Exceptione){

("获取token失败!");

tackTrace();

78}

79returnnull;

80}

81}

ViewCode

;

2

64Encoder;

4

putStream;

ption;

tream;

oder;

9

10/**

11*

12*@authorcsh

13*

14*/

15publicclassBaImg64{

16

17/**

18*将⼀张本地图⽚转化成Ba64字符串

19*/

20publicstaticStringgetImageStrFromPath(StringimgPath){

21InputStreamin;

22byte[]data=null;

23//读取图⽚字节数组

24try{

25in=newFileInputStream(imgPath);

26data=newbyte[ble()];

(data);

();

29}catch(IOExceptione){

tackTrace();

31}

32//对字节数组Ba64编码

33BASE64Encoderencoder=newBASE64Encoder();

34//返回Ba64编码过再URLEncode的字节数组字符串

((data));

36}

37}

ViewCode

;

2

;

ption;

;

taxException;

7

spon;

ient;

st;

Entity;

tHttpClient;

Utils;

14/**

15*

16*@authorcsh

17*图像⽂字识别

18*/

19publicclassCheck{

20

21privatestaticfinalStringPOST_URL="/rest/2.0/ocr/v1/general_basic?access_token="+h();

22

23/**

24*识别本地图⽚的⽂字

25*/

26publicstaticStringcheckFile(Stringpath)throwsURISyntaxException,IOException{

27Filefile=newFile(path);

28if(!()){

29thrownewNullPointerException("图⽚不存在");

30}

31Stringimage=geStrFromPath(path);

32Stringparam="image="+image;

33returnpost(param);

34}

35

36/**

37*图⽚url

38*识别结果,为json格式

39*/

40publicstaticStringcheckUrl(Stringurl)throwsIOException,URISyntaxException{

41Stringparam="url="+url;

42returnpost(param);

43}

44

45/**

46*通过传递参数:url和image进⾏⽂字识别

47*/

48privatestaticStringpost(Stringparam)throwsURISyntaxException,IOException{

49//开始搭建post请求

50HttpClienthttpClient=newDefaultHttpClient();

51HttpPostpost=newHttpPost();

52URIurl=newURI(POST_URL);

(url);

54

55//设置请求头,请求头必须为application/x-www-form-urlencoded,因为是传递⼀个很长的字符串,不能分段发送

der("Content-Type","application/x-www-form-urlencoded");

57StringEntityentity=newStringEntity(param);

ity(entity);

59HttpResponrespon=e(post);

n(ng());

61if(tusLine().getStatusCode()==200){

62Stringstr;

63try{

64//读取服务器返回过来的json字符串数据

65str=ng(ity());

66//很重要,主要是解决返回中⽂的编码格式。

67str=newString(es("ISO-8859-1"),"UTF-8");

n(str);

69returnstr;

70}catch(Exceptione){

tackTrace();

72returnnull;

73}

74}

75returnnull;

76}

77

78/**

79*执⾏⽅法

80*@paramargs

81*/

82publicstaticvoidmain(String[]args){

83//图⽚路径

84Stringpath="E:";

85

86try{

87longnow=tTimeMillis();

88checkFile(path);

n("耗时:"+(tTimeMillis()-now)/1000+"s");

90}catch(URISyntaxException|IOExceptione){

tackTrace();

92}

93}

94}

ViewCode

5.实现结果

实验图⽚:

实验结果:

{

"log_id":61645554,

"words_result_num":14,

"words_result":[{

"words":"实时热点"

},{

"words":"换⼀换"

},{

"words":"端⽕锅泼妻⼦同学默克尔呼吸急促"

},{

"words":"⾼楼坠⼑嫌疑⼈"

},{

"words":"常州奔驰连撞多车"

},{

"words":"菲律宾打击性骚扰新张扣扣被执⾏死刑"

},{

"words":"王思聪股权被冻结章莹颖案结案陈词"

},{

"words":"荷兰弟恋情晛光"

},{

"words":"孙杨暴⼒抗检听证"

},{

"words":"强⽣爽⾝粉致癌案"

},{

"words":"脑机接⼝系统"

},{

"words":"个⼈破产制度试点⾛98800步遭质疑新"

},{

"words":"007主⾓变成⿊⼈"

},{

"words":"华为申请专利"

}]

}

实验总结:百度的图⽚⽂字APi还是挺厉害的,⽐te4j厉害多了。但是有次数限制个⼈免费“5000次/⼈/天”。不过学习起来还是可以的。如有不⾜之处请各位⼤

佬指点!

本文发布于:2023-03-09 06:49:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678315762191335.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:百度图片识别.doc

本文 PDF 下载地址:百度图片识别.pdf

相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图