本示例是採用Delphi 7 調用百度人體分析API;首先說明一下,怎麼建立測試應用。json
一、 登陸百度雲官網 https://cloud.baidu.com/ 固然須要一個百度帳號測試
二、 進入管理控制檯,而後選擇產品服務-人工智能-人體分析人工智能
三、 建立應用便可獲取,相應API Key 信息/code
四、 人流量統計:對應API地址 https://cloud.baidu.com/doc/BODY/s/Pjwvxzafoorm
返回數量和已經渲染的過的圖片(非必選)。不知道,有沒有17我的。blog
獲取圖片類型時有個小插曲;內存流兩個字節是圖片類型,通常定義爲word,但我直接寫了個dword,你們能夠本身查一下,有什麼區別;圖片
在我正常加載圖片的時候,好像沒有區別,jpg圖片確實是D8FF。可是當在調用人流量統計API返回的渲染圖時會多出兩位來,出現過18D8FF,4ED8FF。內存
最後Dword改成Word就能夠了。你們能夠測試一下/get
procedure TFrmMain.cxButton2Click(Sender: TObject); var memImg: TMemoryStream; strImg: TStringStream; sUrl: string; lstParam: TStrings; ret: ISuperObject; buff: dWORD; begin memImg := TMemoryStream.Create; strImg := TStringStream.Create(''); lstParam := TStringList.Create; try if Image2.Picture.Graphic = nil then begin ShowMessage('圖片爲空, 請下加載圖片'); Exit; end; Image2.Picture.Graphic.SaveToStream(memImg); memImg.Position := 0; memImg.ReadBuffer(buff, 2); memImg.Position := 0; EncdDecd.EncodeStream(memImg, strImg); lstParam.Add(Format('image=%S', [strImg.DataString])); lstParam.Add(Format('show=true', [])); sUrl := Format(sUrl_TrafficStat, [FToken]); ret := SO(UTF8Decode(IdHTTP1.Post(sUrl, lstParam))); cxMemo1.Text := ret.AsString; Image2.Picture.Bitmap.Assign(StringToBitmap(ret.S['image'])); finally memImg.Free; strImg.Free; lstParam.Free; end; end;
五、 手勢識別:對應API地址 https://cloud.baidu.com/doc/BODY/s/tjwvxz8jp源碼
單手比心/
其它的你們摸索一下。人體關鍵點識別,人體屬性識別。感受不是很準,有時候傳回的數據也有問題(json串)
不知道是否是圖片的問題。