Module: Mindee::V2::FileOperation::Crop

Defined in:
lib/mindee.rb,
lib/mindee/v2/file_operations/crop.rb

Overview

Crop operations.

Class Method Summary collapse

Class Method Details

.extract_crops(input_source, crops) ⇒ CropFiles

Extracts multiple crop zones from an image.

Parameters:

  • input_source (LocalInputSource)

    Local Input Source to extract sub-receipts from.

  • crops (Array<CropItem>)

    List of crops.

Returns:

  • (CropFiles)

    Individual extracted zones as an array of ExtractedImage.

Raises:

  • (MindeeError)

    if the crops array is empty.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mindee/v2/file_operations/crop.rb', line 26

def self.extract_crops(input_source, crops)
  if crops.nil? || crops.empty?
    raise Mindee::Error::MindeeError,
          'No possible candidates found for Crop extraction.'
  end

  polygons = Array.new(input_source.page_count) { [] }

  crops.each do |crop|
    polygons[crop.location.page] << crop.location.polygon
  end

  images = [] # @type var images: Array[Image::ExtractedImage]
  polygons.each_with_index do |page_polygons, page_index|
    extracted = Mindee::Image::ImageExtractor.extract_multiple_images_from_source(
      input_source, page_index, page_polygons
    )
    images.concat(extracted)
  end

  CropFiles.new(images)
end

.extract_single_crop(input_source, crop) ⇒ ExtractedImage

Extracts a single crop as complete PDFs from the document.

Parameters:

  • input_source (LocalInputSource)

    Local Input Source to extract sub-receipts from.

  • crop (FieldLocation)

    Crop to extract.

Returns:

  • (ExtractedImage)


13
14
15
16
17
18
# File 'lib/mindee/v2/file_operations/crop.rb', line 13

def self.extract_single_crop(input_source, crop)
  polygons = [crop.polygon]
  Mindee::Image::ImageExtractor.extract_multiple_images_from_source(
    input_source, crop.page, polygons
  ).first
end