package camera;
import java.util.ArrayList;
import jp.ne.docomo.smt.dev.common.exception.SdkException;
import jp.ne.docomo.smt.dev.common.exception.ServerException;
import jp.ne.docomo.smt.dev.common.http.AuthApiKey;
import jp.ne.docomo.smt.dev.common.http.ProxyInfo;
import jp.ne.docomo.smt.dev.characterrecognition.DocumentCharacterRecognition;
import jp.ne.docomo.smt.dev.characterrecognition.param.CharacterRecognitionJobInfoRequestParam;
import jp.ne.docomo.smt.dev.characterrecognition.param.CharacterRecognitionRequestParam;
import jp.ne.docomo.smt.dev.characterrecognition.constants.ImageContentType;
import jp.ne.docomo.smt.dev.characterrecognition.constants.Lang;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionDocumentResultData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionLineData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionLinesData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionMessageData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionPointData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionShapeData;
import jp.ne.docomo.smt.dev.characterrecognition.data.CharacterRecognitionStatusData;
/**
* 文字認識 文章画像認識要求サンプルコード
*/
public class pro {
public static void main(String[] args) {
try {
// APIKEY の設定
AuthApiKey.initializeAuth("562f4a656953597a71515a314c6f43744f79454773304e7171496969324868447a4d704f344b6243315730");
// 文章画像認識要求
String jobid = request();
// 数秒、解析処理を待つ
Thread.sleep(5000);
// 文章画像認識結果取得
result(jobid);
// 文章画像認識取消
delete(jobid);
} catch (SdkException e) {
e.printStackTrace();
} catch (ServerException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static String request() throws SdkException, ServerException {
// パラメータクラスを生成して、各項目を設定する
CharacterRecognitionRequestParam param = new CharacterRecognitionRequestParam();
param.setLang(Lang.CHARACTERS_JP);
param.setFilePath("c.jpg");
param.setImageContentType(ImageContentType.IMAGE_JPEG);
// 文章画像認識クラスを生成して文章画像認識リクエストを実行する
DocumentCharacterRecognition recognition = new DocumentCharacterRecognition();
CharacterRecognitionStatusData statusData = recognition.recognize(param);
// 受付結果の出力
// 認識ジョブの出力
System.out.println("認識ジョブの出力 :");
System.out.println(" 認識ジョブID : " + statusData.getJob().getId());
System.out.println(" 進行状況 : " + statusData.getJob().getStatus());
System.out.println(" リクエスト受け付け時刻 : " + statusData.getJob().getQueueTime());
// メッセージの出力
CharacterRecognitionMessageData message = statusData.getMessage();
if (message != null) {
System.out.println("メッセージ : " + message.getText());
}
return statusData.getJob().getId();
}
private static void result(String jobid) throws SdkException, ServerException {
// パラメータクラスを生成して、ジョブIDを設定する
CharacterRecognitionJobInfoRequestParam param = new CharacterRecognitionJobInfoRequestParam();
param.setJobId(jobid);
// 文章画像認識クラスを生成して結果取得リクエストを実行する
DocumentCharacterRecognition recognition = new DocumentCharacterRecognition();
CharacterRecognitionDocumentResultData resultData = recognition.getResult(param);
// 解析結果の出力
// 認識ジョブの出力
System.out.println("認識ジョブの出力 :");
System.out.println(" 認識ジョブID : " + resultData.getJob().getId());
System.out.println(" 進行状況 : " + resultData.getJob().getStatus());
System.out.println(" リクエスト受け付け時刻 : " + resultData.getJob().getQueueTime());
// 抽出した全ての単語の情報の出力
CharacterRecognitionLinesData linesData = resultData.getLines();
if (linesData != null) {
System.out.println("行情報 :");
System.out.println(" 認識した行数 :" + linesData.getCount());
ArrayList<CharacterRecognitionLineData> lineList = linesData.getLine();
for (CharacterRecognitionLineData lineData : lineList) {
System.out.println(" 認識した行情報 : ");
System.out.println(" 認識した行 : " + lineData.getText());
System.out.println(" 抽出した行の形状を表す座標の出力 :");
CharacterRecognitionShapeData shapeData = lineData.getShape();
ArrayList<CharacterRecognitionPointData> pointList = shapeData.getPoint();
if (pointList == null) {
continue;
}
System.out.println(" 頂点の数 : " + shapeData.getCount());
for (CharacterRecognitionPointData pointData : pointList) {
System.out.println(" x座標, y座標(ピクセル単位) : " + pointData.getX() + ", " + pointData.getY());
}
}
}
// メッセージの出力
CharacterRecognitionMessageData message = resultData.getMessage();
if (message != null) {
System.out.println("メッセージ : " + message.getText());
}
}
/**
* 文章画像認識を取消する
* @param jobid ジョブID
* @throws SdkException SDK 内部でエラーが発生した場合
* @throws ServerException サーバからエラーを受信した場合
*/
private static void delete(String jobid) throws SdkException, ServerException {
// パラメータクラスを生成して、各項目を設定する
CharacterRecognitionJobInfoRequestParam param = new CharacterRecognitionJobInfoRequestParam();
param.setJobId(jobid);
// 文章画像認識クラスを生成して文章画像認識取消リクエストを実行する
DocumentCharacterRecognition recognize = new DocumentCharacterRecognition();
CharacterRecognitionStatusData statusData = recognize.delete(param);
// 受付結果の出力
// 認識ジョブの出力
System.out.println("認識ジョブの出力 :");
System.out.println(" 認識ジョブID : " + statusData.getJob().getId());
System.out.println(" 進行状況 : " + statusData.getJob().getStatus());
System.out.println(" リクエスト受け付け時刻 : " + statusData.getJob().getQueueTime());
// メッセージの出力
CharacterRecognitionMessageData message = statusData.getMessage();
if (message != null) {
System.out.println("メッセージ : " + message.getText());
}
}
}
最終更新:2016年08月13日 06:47