From 76fab6f6dce94e979df0f3f7716df6573f616943 Mon Sep 17 00:00:00 2001 From: nnegrey Date: Thu, 21 Nov 2019 11:06:24 -0700 Subject: [PATCH] Add vision ocr set endpoint snippets --- .../java/com/example/vision/SetEndpoint.java | 69 +++++++++++++++++++ .../com/example/vision/SetEndpointIT.java | 62 +++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 vision/cloud-client/src/main/java/com/example/vision/SetEndpoint.java create mode 100644 vision/cloud-client/src/test/java/com/example/vision/SetEndpointIT.java diff --git a/vision/cloud-client/src/main/java/com/example/vision/SetEndpoint.java b/vision/cloud-client/src/main/java/com/example/vision/SetEndpoint.java new file mode 100644 index 00000000000..a08a0d084ac --- /dev/null +++ b/vision/cloud-client/src/main/java/com/example/vision/SetEndpoint.java @@ -0,0 +1,69 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +import com.google.cloud.vision.v1.AnnotateImageRequest; +import com.google.cloud.vision.v1.AnnotateImageResponse; +import com.google.cloud.vision.v1.BatchAnnotateImagesResponse; +import com.google.cloud.vision.v1.EntityAnnotation; +import com.google.cloud.vision.v1.Feature; +import com.google.cloud.vision.v1.Image; +import com.google.cloud.vision.v1.ImageAnnotatorClient; +import com.google.cloud.vision.v1.ImageAnnotatorSettings; +import com.google.cloud.vision.v1.ImageSource; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +class SetEndpoint { + + // Change your endpoint + static void setEndpoint() throws IOException { + // [START vision_set_endpoint] + ImageAnnotatorSettings settings = + ImageAnnotatorSettings.newBuilder().setEndpoint("eu-vision.googleapis.com:443").build(); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. After completing all of your requests, call + // the "close" method on the client to safely clean up any remaining background resources. + ImageAnnotatorClient client = ImageAnnotatorClient.create(settings); + // [END vision_set_endpoint] + + ImageSource imgSource = + ImageSource.newBuilder() + .setGcsImageUri("gs://cloud-samples-data/vision/text/screen.jpg") + .build(); + Image image = Image.newBuilder().setSource(imgSource).build(); + Feature feature = Feature.newBuilder().setType(Feature.Type.TEXT_DETECTION).build(); + AnnotateImageRequest request = + AnnotateImageRequest.newBuilder().addFeatures(feature).setImage(image).build(); + List requests = new ArrayList<>(); + requests.add(request); + + BatchAnnotateImagesResponse batchResponse = client.batchAnnotateImages(requests); + + for (AnnotateImageResponse response : batchResponse.getResponsesList()) { + for (EntityAnnotation annotation : response.getTextAnnotationsList()) { + System.out.printf("Text: %s\n", annotation.getDescription()); + System.out.println("Position:"); + System.out.printf("%s\n", annotation.getBoundingPoly()); + } + } + client.close(); + } +} diff --git a/vision/cloud-client/src/test/java/com/example/vision/SetEndpointIT.java b/vision/cloud-client/src/test/java/com/example/vision/SetEndpointIT.java new file mode 100644 index 00000000000..5aac338ae51 --- /dev/null +++ b/vision/cloud-client/src/test/java/com/example/vision/SetEndpointIT.java @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for Vision Set Endpoint */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class SetEndpointIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testSetEndpoint() throws IOException { + // Act + SetEndpoint.setEndpoint(); + + // Assert + String got = bout.toString(); + assertThat(got).contains("System Software Update"); + assertThat(got).contains("x:"); + assertThat(got).contains("y:"); + } +}