11

Goggle Goggles を使用して画像を認識できるテスト アプリを作成しました。それは私にとってはうまくいきますが、binaryt protobuf 応答を受け取ります。プロトファイルはなく、バイナリ応答のみです。そこからデータを取得するにはどうすればよいですか?(クマのボトルでいくつかの画像を送信し、次の応答を得ました):

A
TuborgLogo9 HoaniText���;�)b���2d8e991bff16229f6"�
+TR=T=AQBd6Cl4Kd8:X=OqSEi:S=_rSozFBgfKt5d9b0
+TR=T=6rLQxKE2xdA:X=OqSEi:S=gd6Aqb28X0ltBU9V
+TR=T=uGPf9zJDWe0:X=OqSEi:S=32zTfdIOdI6kuUTa
+TR=T=RLkVoGVd92I:X=OqSEi:S=P7yOhvSAOQW6SRHN
+TR=T=J1FMvNmcyMk:X=OqSEi:S=5Z631_rd2ijo_iuf�

文字列「Tuborg」を取得する必要があり、可能であれば「Logo」と入力する必要があります

4

3 に答える 3

19

でデコードできますprotoc

protoc --decode_raw < msg.bin
于 2015-03-03T08:07:01.097 に答える
4

本当の問題は、Java を使用してワイヤからバイナリを読み取る方法ではなく、protobufs をデコードする方法であると想定します。

あなたの質問への答えはここにあります

簡単に言えば、ネットワーク上で、protobufs は の 3 タプルとしてエンコードされ<key,type,value>ます。

  • .protoキーは、スキーマ内のフィールドに割り当てられたフィールド番号です
  • タイプは のいずれかです<Varint, int32, length-delimited, start-group, end-group,int64。これには、3 タプルの値をデコードするのに十分な情報が含まれています。つまり、値の長さがわかります。
于 2012-04-20T21:03:34.407 に答える