Class: Google::Cloud::Vision::Annotation::Text::Word

Inherits:
Object
  • Object
show all
Defined in:
lib/google/cloud/vision/annotation/text.rb

Overview

# Word

A word within a detected text (OCR). See Google::Cloud::Vision::Annotation::Text.

Examples:

require "google/cloud/vision"

vision = Google::Cloud::Vision.new

image = vision.image "path/to/text.png"
text = image.text

words = text.words
words.count #=> 28

word = words.first
word.text #=> "Google"
word.bounds.count #=> 4
word.bounds.first #=> #<Vertex (x: 13, y: 8)>

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeWord

Returns a new instance of Word.



160
161
162
# File 'lib/google/cloud/vision/annotation/text.rb', line 160

def initialize
  @grpc = nil
end

Instance Attribute Details

#grpcObject



156
157
158
# File 'lib/google/cloud/vision/annotation/text.rb', line 156

def grpc
  @grpc
end

Class Method Details

.from_grpc(grpc) ⇒ Object

object.



212
213
214
# File 'lib/google/cloud/vision/annotation/text.rb', line 212

def self.from_grpc grpc
  new.tap { |w| w.instance_variable_set :@grpc, grpc }
end

Instance Method Details

#boundsArray<Vertex>

The bounds of the word within the detected text.

Returns:



178
179
180
181
182
183
# File 'lib/google/cloud/vision/annotation/text.rb', line 178

def bounds
  return [] unless @grpc.bounding_poly
  @bounds ||= Array(@grpc.bounding_poly.vertices).map do |v|
    Vertex.from_grpc v
  end
end

#inspectObject



205
206
207
# File 'lib/google/cloud/vision/annotation/text.rb', line 205

def inspect
  format "#<Word text: %s, bounds: %i>", text.inspect, bounds.count
end

#textString

The text of the word.

Returns:

  • (String)


169
170
171
# File 'lib/google/cloud/vision/annotation/text.rb', line 169

def text
  @grpc.description
end

#to_hHash

Deeply converts object to a hash. All keys will be symbolized.

Returns:

  • (Hash)


190
191
192
# File 'lib/google/cloud/vision/annotation/text.rb', line 190

def to_h
  { text: text, bounds: bounds.map(&:to_h) }
end

#to_sObject



195
196
197
# File 'lib/google/cloud/vision/annotation/text.rb', line 195

def to_s
  to_str
end

#to_strObject



200
201
202
# File 'lib/google/cloud/vision/annotation/text.rb', line 200

def to_str
  text
end