Googleが提供しているVision APIをJavaで使ってみました。
APIを使用し、画像のプロパティを取得します。
ドミナントカラーとクロップヒントを取得します。
取得情報 | 概要 |
---|---|
ドミナントカラー | 同じか類似の色相を基調に、トーン(色調)を変えた配色法 |
クロップヒント | 画像をクロップするヒント(座標) 下記の記事の方法でも取得可能です。 ⧉[Vision API] Javaで画像のクロップヒントを検出する 詳しくはこちらを参照ください。 |
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Vision API] Javaで画像内のいろいろなものを検出する
を参照ください。
No | 目次 | |
---|---|---|
1 | Feature.Typeの指定 | |
2 | 実行結果の取得 | |
1 | レスポンスの出力 | |
2 | レスポンスの内容 | |
3 | 結果の検証 | |
1 | 繁華街 | |
2 | 交通標識 | |
3 | ボーリング | |
4 | 人物 | |
5 | 富士山 | |
6 | 熊本城 | |
7 | 街 | |
8 | 野菜 | |
9 | 猫 | |
10 | デスク | |
11 | 景色 | |
12 | 駐車場 |
1. Feature.Typeの指定
クロップヒントを検出する場合は、
Feature.Type.IMAGE_PROPERTIES
を指定します。
以下の記事でexecApi()にタイプを指定します。
⧉[Vision API] Javaで画像内のいろいろなものを検出する
2. 実行結果の取得
2.1. レスポンスの出力
取得した結果をコンソールに出力します。
private static void output(BatchAnnotateImagesResponse response){
List<AnnotateImageResponse> responses = response.getResponsesList();
for (AnnotateImageResponse res : responses) {
if (res.hasError()) {
System.out.format("Error: %s%n", res.getError().getMessage());
return;
}
DominantColorsAnnotation colors = res.getImagePropertiesAnnotation().getDominantColors();
for (ColorInfo color : colors.getColorsList()) {
System.out.format("fraction: %f%nr: %f, g: %f, b: %f%n",
color.getPixelFraction(),
color.getColor().getRed(),
color.getColor().getGreen(),
color.getColor().getBlue());
}
}
}
2.2. レスポンスの内容
BatchAnnotateImagesResponseの
getResponsesListでAnnotateImageResponseリストが取得できます。
検出されなった場合は、空のリストが返ってきます。
AnnotateImageResponse
メソッド | 戻り値 | 内容 |
---|---|---|
getCropHintsAnnotation | CropHintsAnnotation | クロップヒントのセット |
getImagePropertiesAnnotation | ImageProperties | 画像プロパティ |
CropHintsAnnotation
[Vision API] Javaで画像のクロップヒントを検出する
を参照してください。
ImageProperties
メソッド | 戻り値 | 内容 |
---|---|---|
getDominantColors | DominantColorsAnnotation | ドミナントカラー |
DominantColorsAnnotation
メソッド | 戻り値 | 内容 |
---|---|---|
getColorsList | List<ColorInfo> | RGB カラー値とそのスコアおよびピクセル割合 |
ColorInfo
メソッド | 戻り値 | 内容 |
---|---|---|
getScore | float | この色の画像固有のスコア。範囲は0〜1 |
getPixelFraction | float | 画像内で色が占めるピクセルの割合。範囲は0〜1 |
getColor | Color | RGB色 |
Color
メソッド | 戻り値 | 内容 |
---|---|---|
getRed | float | 赤色 |
getGreen | float | 緑色 |
getBlue | float | 青色 |
3. 結果の検証
いろいろな画像のプロパティを検出してみました。
ドミナントカラーの画像は、取得したレスポンスを元に生成しています。
3.1. 繁華街
3.2. 交通標識
3.3. ボーリング
3.4. 人物
3.5. 富士山
3.6. 熊本城
3.7. 街
3.8. 野菜
3.9. 猫
3.10. デスク
3.11. 景色
3.12. 駐車場
おしまい。。。