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

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

Overview

Word

A word representation. See Paragraph.

Examples:

require "google/cloud/vision"

vision = Google::Cloud::Vision.new

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

word = text.pages[0].blocks[0].paragraphs[0].words.first

word.languages.first.code #=> "en"
word.bounds.count #=> 4
word.symbols.count #=> 6

Instance Method Summary collapse

Instance Method Details

#boundsArray<Vertex>

The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example:

  • when the text is horizontal it might look like: 0----1 | | 3----2
  • when rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertice order will still be (0, 1, 2, 3).

Returns:



750
751
752
753
754
755
# File 'lib/google/cloud/vision/annotation/text.rb', line 750

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

#break_type::Symbol

The type of a detected break at the start or end of the page.

Returns:

  • (::Symbol)


712
713
714
715
716
# File 'lib/google/cloud/vision/annotation/text.rb', line 712

def break_type
  return nil if @grpc.property.nil?
  @grpc.property.detected_break &&
    @grpc.property.detected_break.type.to_sym
end

#languagesArray<Language>

A list of detected languages together with confidence.

Returns:



699
700
701
702
703
704
705
# File 'lib/google/cloud/vision/annotation/text.rb', line 699

def languages
  return [] if @grpc.property.nil?
  detected_languages = @grpc.property.detected_languages
  @languages ||= Array(detected_languages).map do |l|
    Language.from_grpc l
  end
end

#prefix_break?Boolean

True if a detected break prepends the page.

Returns:

  • (Boolean)


723
724
725
726
727
# File 'lib/google/cloud/vision/annotation/text.rb', line 723

def prefix_break?
  return nil if @grpc.property.nil?
  @grpc.property.detected_break &&
    @grpc.property.detected_break.is_prefix
end

#symbolsArray<Symbol>

List of symbols in the word. The order of the symbols follows the natural reading order.

Returns:



763
764
765
766
767
# File 'lib/google/cloud/vision/annotation/text.rb', line 763

def symbols
  @symbols ||= Array(@grpc.symbols).map do |b|
    Symbol.from_grpc b
  end
end

#to_hHash

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

Returns:

  • (Hash)


774
775
776
777
778
# File 'lib/google/cloud/vision/annotation/text.rb', line 774

def to_h
  { languages: languages.map(&:to_h), break_type: break_type,
    prefix_break: prefix_break?, bounds: bounds.map(&:to_h),
    symbols: symbols.map(&:to_h) }
end