Mathematics? #91
Replies: 8 comments
-
Hi, Afaik, there is no any math description of algorithms used in ST. STU is a fork of ST and inherits all image processing algorithms from it. So, the author of original ST (Joseph Artsimovich) is the one who know them in details. You may try to ask him. There are some references to scientific papers in References Tab of ST's About dialog that might be helpful:
Probably some details were explained by author (Tulon) on ru-board forum here or here. There are 250+ pages of discussions. Other way is to deconstruct algo from the code. I guess, starting from here. I would be capable to explain the code, but my knowledge of image processing isn't enough to explain it in a terms of math or recognize usage of some well-known approaches from research papers above in it. |
Beta Was this translation helpful? Give feedback.
-
A pseudo-mathematical description should be made from a ready-made algorithm. Otherwise it will be of little use. The main thing is to understand that such a description is necessary to understand the limitations of the segmentater. At this stage, the segmentater is able to pick out most of the illustrations. But it does not distinguish between solid illustrations and patterns. And this does not allow using different color correction algorithms for these fundamentally different types of illustrations. |
Beta Was this translation helpful? Give feedback.
-
Could you provide with example of what you mean by solid illustration? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
How about that brief explanation: If you enable "Tools/Settings/General/Debug mode" and then select an image at Output processing stage that's in Mixed mode (has both text to binarize and illustrations) and select "Regenerate" in context menu you'll get additional "Debug images" (tabs on top of result preview panel). Ok, let's consider simplest case: without dewarping (not a OutputGenerator::processWithoutDewarping()).
/*
Image color conversion is implemented in class It's need to be highlighted that although ST uses standard Qt class (QTransform) for storing the matrix of transformations and uses standard Qt methods to apply it to such objects as points and regions, the standard Qt's image rendering isn't used. I mean ST not invoke transform() method of QImage but implements its own rendering of piece of original image to a new coordinate system. I suspect that's because Qt doesn't support scaling with filter other then bilinear (no bicubic!) by default. And ST often renders images in dpi less or bigger then original. So, ST uses own image renderer that's implemented in method
Next: /*
(SavGolFilter.h) The size of its window and degrees are hardcoded for images with minimal (hor/vert) dpi: 200, 400, 800 and 800+. The result might be seen in /*
The result could be seen as 2.2. Then the 2.3. Both 2.4. The 2.5.
Values are spread to 8 immediate neighbors. 2.6 Then 2.7. Then ST creates a frame image same size as
Note: the original ST as well as Tulon's Experimental are using Was this an improvement? I hope so. Binarization operation itself is a pretty straightforward. The result is stored as a ////
///
I think this is for case Otsu Threshold return an extreme value. The result is stored as ///
... PROFIT!!! |
Beta Was this translation helpful? Give feedback.
-
Hi @trufanov-nok . Yes. This is a decent description. I did not understand the purpose of some of the listed procedures in the code. You can already work with such a description. The rest of the details are in the code and don't need to be written. Move this description into a separate text file and put it in the repo. |
Beta Was this translation helpful? Give feedback.
-
I don't think this description should be a part of sourcecode as a file. I may move it to Discussions |
Beta Was this translation helpful? Give feedback.
-
@trufanov-nok say:
Why? Excellent reference material for both issues and discussions. The foundation. Why hang everything in the air again? |
Beta Was this translation helpful? Give feedback.
-
I see the need to publish the applied binarization algorithm in a pseudo-mathematical, algorithmic form.
The fact is that it is this algorithm that determines the restrictions on the further classification of individual parts of the image. At the moment, the classification is the simplest: text / illustration. But this classification can be expanded. To do this, one must see the limitations of the binarization algorithm.
Beta Was this translation helpful? Give feedback.
All reactions