class GoogleCloudVision::Classifier
classifier for face, text and label detection
Attributes
response[R]
Public Class Methods
new(api_key, images)
click to toggle source
# File lib/google_cloud_vision.rb, line 12 def initialize(api_key, images) @url = "https://vision.googleapis.com/v1/images:annotate?key=#{api_key}" @images = images call_vision_api(requests(images)) end
Private Instance Methods
call_vision_api(data)
click to toggle source
# File lib/google_cloud_vision.rb, line 40 def call_vision_api(data) url = URI(@url) req = Net::HTTP::Post.new(url, initheader = { 'Content-Type' =>'application/json' }) req.body = data res = Net::HTTP.new(url.host, url.port) res.use_ssl = true res.start do |http| resp = http.request(req) json = JSON.parse(resp.body) @response = json end end
request(image)
click to toggle source
# File lib/google_cloud_vision.rb, line 28 def request(image) { image: { content: Base64.encode64(File.open(image[:image], 'rb').read) }, features: { type: image[:detection], maxResults: image[:max_results] || 1 } } end
requests(images)
click to toggle source
# File lib/google_cloud_vision.rb, line 20 def requests(images) data = { requests: [] } images.each do |image| data[:requests] << request(image) end data.to_json end