70 lines
1.8 KiB
Ruby
70 lines
1.8 KiB
Ruby
|
# Copyright 2016 Google Inc.
|
||
|
#
|
||
|
# 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.
|
||
|
|
||
|
require 'google/apis/vision_v1'
|
||
|
require 'base_cli'
|
||
|
|
||
|
|
||
|
module Samples
|
||
|
# Examples for the Vision APIs
|
||
|
#
|
||
|
# Sample usage:
|
||
|
#
|
||
|
# $ ./google-api-samples vision process ~/my_image.jpg --feature='TEXT_DETECTION'
|
||
|
#
|
||
|
class Vision < BaseCli
|
||
|
Vision = Google::Apis::VisionV1
|
||
|
|
||
|
attr_reader :image_path
|
||
|
|
||
|
desc 'process FILE', 'Process an image'
|
||
|
method_option :feature, type: :string, required: true
|
||
|
method_option :max_results, type: :numeric
|
||
|
def process(image_path)
|
||
|
@image_path = image_path
|
||
|
|
||
|
vision = Vision::VisionService.new
|
||
|
vision.key = api_key
|
||
|
|
||
|
result = vision.annotate_image(requests)
|
||
|
print "\nImage processed! - Response:\n\n"
|
||
|
p result
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def image
|
||
|
@image ||= Vision::Image.new(content: File.open(image_path).read)
|
||
|
end
|
||
|
|
||
|
def feature
|
||
|
@feature ||= Vision::Feature.new(
|
||
|
type: options[:feature],
|
||
|
max_results: options[:max_results] || 1
|
||
|
)
|
||
|
end
|
||
|
|
||
|
def requests
|
||
|
@requests ||= Vision::BatchAnnotateImagesRequest.new(
|
||
|
requests: [
|
||
|
Vision::AnnotateImageRequest.new(
|
||
|
image: image,
|
||
|
features: [feature]
|
||
|
)
|
||
|
]
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|