     }
 }
 
+
+
+
+
+

        // sourceImage is the same image you sent to Tesseract above.
        // Processing is already done in dynamic filters
        if showPostProcessingFilters { return sourceImage }

        var filterImage: UIImage = sourceImage
        exposureFilter.exposure = self.lastExposure
        filterImage = exposureFilter.image(byFilteringImage: filterImage)

     */
    open override func viewDidLoad() {
        super.viewDidLoad()
        
        if !self.setupCompleted {
            self.setup()
        }
    }
    
    @objc public func setup() {
        if self.setupCompleted {
            return
        }
        self.setupCompleted = true
        
        self.view.backgroundColor = UIColor.white
        
        if self.tesseractTrainedDataAbsolutePath != nil {
            tesseract = MGTesseract(language: "eng", configDictionary: nil, configFileNames: nil, absoluteDataPath: self.tesseractTrainedDataAbsolutePath, engineMode: MGOCREngineMode.tesseractOnly)
        }else{
            tesseract = MGTesseract(language: "eng")
        }
        
        // Specify the crop region that will be used for the OCR
        
        crop.cropSizeInPixels = Size(width: Float(ocrParsingRect.size.width), height: Float(ocrParsingRect.size.height))
        crop.locationOfCropInPixels = Position(Float(ocrParsingRect.origin.x), Float(ocrParsingRect.origin.y), nil)
        crop.overriddenOutputRotation = .rotateClockwise
        
        if !showPostProcessingFilters {
