Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/tesseract/src/training/degradeimage.h @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/tesseract/src/training/degradeimage.h Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,57 @@ +/********************************************************************** + * File: degradeimage.h + * Description: Function to degrade an image (usually of text) as if it + * has been printed and then scanned. + * Authors: Ray Smith + * + * (C) Copyright 2013, Google Inc. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + **********************************************************************/ +#ifndef TESSERACT_TRAINING_DEGRADEIMAGE_H_ +#define TESSERACT_TRAINING_DEGRADEIMAGE_H_ + +#include <allheaders.h> +#include "helpers.h" // For TRand. +#include "rect.h" + +namespace tesseract { + +// Degrade the pix as if by a print/copy/scan cycle with exposure > 0 +// corresponding to darkening on the copier and <0 lighter and 0 not copied. +// If rotation is not nullptr, the clockwise rotation in radians is saved there. +// The input pix must be 8 bit grey. (Binary with values 0 and 255 is OK.) +// The input image is destroyed and a different image returned. +Image DegradeImage(Image input, int exposure, TRand *randomizer, float *rotation); + +// Creates and returns a Pix distorted by various means according to the bool +// flags. If boxes is not nullptr, the boxes are resized/positioned according to +// any spatial distortion and also by the integer reduction factor box_scale +// so they will match what the network will output. +// Returns nullptr on error. The returned Pix must be pixDestroyed. +Image PrepareDistortedPix(const Image pix, bool perspective, bool invert, bool white_noise, + bool smooth_noise, bool blur, int box_reduction, TRand *randomizer, + std::vector<TBOX> *boxes); +// Distorts anything that has a non-null pointer with the same pseudo-random +// perspective distortion. Width and height only need to be set if there +// is no pix. If there is a pix, then they will be taken from there. +void GeneratePerspectiveDistortion(int width, int height, TRand *randomizer, Image *pix, + std::vector<TBOX> *boxes); +// Computes the coefficients of a randomized projective transformation. +// The image transform requires backward transformation coefficient, and the +// box transform the forward coefficients. +// Returns the incolor arg to pixProjective. +int ProjectiveCoeffs(int width, int height, TRand *randomizer, float **im_coeffs, + float **box_coeffs); + +} // namespace tesseract + +#endif // TESSERACT_TRAINING_DEGRADEIMAGE_H_
