APIのナンバープレート認識--Restfulの実施形態のBaiduの

ステップ1:トークンアドレスを取得します

 

 

 

1つの 関数TfrmMain.GetToken(TokenUrl、lbledtAPIKEY、lbledtSe​​cretKey
 2文字列):文字列3  開始
4     RESTClient1 
5    始める
6      BASEURLを:= TokenUrl。
7    ;
8     RESTRequest1がない
9    始まる
10      法:= rmPOST。
11      AcceptCharSet:= ' UTF-8 ' ;
12      Params.Clear;
13      AddParameter("grant_type ' ' client_credentials " );
14      AddParameter(' CLIENT_ID ' 、lbledtAPIKEY)。
15      // API IDキー
16      AddParameter(' client_secret ' 、lbledtSe​​cretKey)。
17      // APIの秘密鍵
18      を実行。
19      結果:= RESTResponse1.Content。
20    端部21  端部22  
23  機能 TfrmMain.GetAccessToken(jsonstr:文字列):文字列 ; // 取jsonstring值
24  VAR 
25    城:TjsonObject。
26組の   JV:TjsonValue。
27  開始
28    城を:= nilを;
29    城:= TjsonObject。作成します30    ジョー= TjsonObject.parsejsonvalue(Tencoding.utf8.getbytes(jsonstr)、0 31      としてTjsonObject。
32    JV:= jo.Get(' access_tokenは' ).JsonValue。
33    結果:= jv.Value。
34  端部35  
36  
37 手順TfrmMain.Button1Click(送信者:TObjectを);
38  開始
39    lbledtToken.Textを:= GetAccessToken(入手トークン(lbledtTokenUrl.Text、
 40      lbledtAPIKEY.Text、lbledtSe​​cretKey.Text))。
41  端部

 

ステップ2:ナンバープレートを識別
機能 TfrmMain.GetCarNumJson(AccessToken、CarNumAPI:文字列):文字列;
VaRの
  strtemp:文字列; 
  温度:TjsonObject。
  STRM:TMemoryStream; 
  SS:TStringStream。
  S:文字列;
始める
  場合 frmMain.Image1.Picture.Graphic <> nilで 、その後
  始まる
    :STRMを = TMemoryStream。作成します
    frmMain.Image1.Picture.SaveToStream(STRM)。
    SS: = TStringStream。作成し'' ); 
    strm.Position: = 0 ;
    EncodeStream(STRM、SS)。// 将内存流编码为base64で字符流 
    S:= ss.DataString。
    strm.Free; 
    ss.Free; 
  エンド; 
  RESTClient1.BaseURL: = CarNumAPI。
  RESTRequest1.Params.Clear; 
  RESTRequest1.AddParameter(' access_tokenは' 、AccessToken)。
  RESTRequest1.AddParameter(' 画像' 、S)。
  RESTRequest1.Execute; 
  結果: = RESTResponse1.Content。
エンド; 

機能 TfrmMain.GetCarNum(CarNumJSONStr:文字列):文字列;
VAR
  ジョー:TjsonObject; 
  JO2:TjsonObject; 
  JV:TjsonValue; 
  jsonstr:文字列 ; // JSON文字列に変換する 
  jsonstr2:文字列 ; // JSON文字列を変換するために
始める
  //が最初のネストされた文字列の削除 
  城:=をTjsonObject.parsejsonvalue(CarNumJSONStr)AS TjsonObject; 
  jsonstr: = jo.GetValue(' words_result ' ).ToString;
   // その後、文字列の値 
  JO 2:= TjsonObject.parsejsonvalue(jsonstr)AS TjsonObject; 
  jsonstr2: = jo.GetValue (' words_result ').ToString;
  しようと
    JVを: = jo2.Get(' 番号' ).JsonValue。
    結果: = jv.Value。
  最後に
    jo.Free; 
  エンド;
エンド; 

手順TfrmMain.Button2Click(送信者:TObjectを);
開始
  lbledtCarNum.Text: = GetCarNum(GetCarNumJson(lbledtToken.Text、
    lbledtAPIURL.Text))。
エンド ;

 

 

最後に:結果マップ

 

おすすめ

転載: www.cnblogs.com/redhat588/p/11563275.html