gitextract_kry5ydl6/ ├── .claude/ │ └── settings.local.json ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── benchmarks.yml │ ├── npm-publish.yml │ ├── pythonpackage.yml │ └── test-and-coverage.yml ├── .gitignore ├── Bindings/ │ ├── Matlab/ │ │ ├── +Doxa/ │ │ │ ├── Algorithms.m │ │ │ ├── Grayscale.m │ │ │ ├── Image.m │ │ │ ├── binarize.m │ │ │ ├── buildParams.m │ │ │ ├── calculatePerformance.m │ │ │ ├── readWeights.m │ │ │ └── updateToBinary.m │ │ ├── BinarizeMex.cpp │ │ ├── CMakeLists.txt │ │ ├── CalculatePerformanceMex.cpp │ │ ├── Doxa.prj │ │ ├── DoxaMexUtils.hpp │ │ ├── ImageMex.cpp │ │ ├── README.md │ │ ├── UpdateToBinaryMex.cpp │ │ └── test/ │ │ └── TestDoxa.m │ ├── Python/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── DoxaPy.ipynb │ │ ├── README.md │ │ ├── copy-cpp-files.py │ │ ├── pyproject.toml │ │ ├── requirements.txt │ │ ├── src/ │ │ │ ├── DoxaPy.cpp │ │ │ └── doxapy/ │ │ │ └── __init__.py │ │ └── test/ │ │ ├── test_doxa.py │ │ └── test_speed.py │ └── WebAssembly/ │ ├── CMakeLists.txt │ ├── DoxaJs.nnb │ ├── DoxaWasm.cpp │ ├── README.md │ ├── dist/ │ │ ├── doxa.js │ │ ├── doxaWasm.js │ │ └── doxaWasm.wasm │ ├── doxa.js │ ├── package.json │ └── spec/ │ ├── binarization.spec.js │ ├── image.spec.js │ ├── speed.spec.js │ └── support/ │ └── jasmine.json ├── CLAUDE.md ├── CMakeLists.txt ├── CMakePresets.json ├── Demo/ │ ├── Cpp/ │ │ ├── .gitignore │ │ ├── demo.cpp │ │ ├── demoOpenCV.cpp │ │ ├── demoQt.cpp │ │ └── demoQt.pro │ ├── Matlab/ │ │ └── demo.m │ ├── NodeJS/ │ │ ├── .gitignore │ │ ├── index.js │ │ └── package.json │ ├── Python/ │ │ └── demo.py │ └── WebJS/ │ └── index.html ├── Doxa/ │ ├── AdOtsu.hpp │ ├── Algorithm.hpp │ ├── Bataineh.hpp │ ├── Bernsen.hpp │ ├── BinarizationFactory.hpp │ ├── ChanMeanCalc.hpp │ ├── ChanMeanVarianceCalc.hpp │ ├── ClassifiedPerformance.hpp │ ├── ContrastImage.hpp │ ├── DIBCOUtils.hpp │ ├── DRDM.hpp │ ├── Doxa.vcxitems │ ├── Gatos.hpp │ ├── Grayscale.hpp │ ├── GridCalc.hpp │ ├── ISauvola.hpp │ ├── Image.hpp │ ├── IntegralImageMeanVarianceCalc.hpp │ ├── LocalWindow.hpp │ ├── Morphology.hpp │ ├── MultiScale.hpp │ ├── Niblack.hpp │ ├── Nick.hpp │ ├── Otsu.hpp │ ├── PNM.hpp │ ├── Palette.hpp │ ├── Parameters.hpp │ ├── Phansalkar.hpp │ ├── Region.hpp │ ├── SIMD.h │ ├── SIMDOps.hpp │ ├── Sauvola.hpp │ ├── Su.hpp │ ├── TRSingh.hpp │ ├── Types.hpp │ ├── Wan.hpp │ ├── WienerFilter.hpp │ └── Wolf.hpp ├── Doxa.Bench/ │ ├── BenchmarkHarness.hpp │ ├── BinarizationBenchmarks.cpp │ ├── CMakeLists.txt │ ├── CalculatorBenchmarks.cpp │ ├── ClassifiedPerformanceBenchmarks.cpp │ ├── DRDMBenchmarks.cpp │ ├── GlobalThresholdBenchmarks.cpp │ ├── config.hpp.in │ └── pch.h ├── Doxa.Test/ │ ├── AlgorithmTests.cpp │ ├── BatainehTests.cpp │ ├── BinarizationTests.cpp │ ├── CMakeLists.txt │ ├── CalculatorTests.cpp │ ├── ClassifiedPerformanceTests.cpp │ ├── ContrastImageTests.cpp │ ├── DIBCOUtilsTests.cpp │ ├── DRDMTests.cpp │ ├── Doxa.Test.vcxproj │ ├── Doxa.Test.vcxproj.filters │ ├── GrayscaleTests.cpp │ ├── GridCalcTests.cpp │ ├── ISauvolaTests.cpp │ ├── ImageFixture.hpp │ ├── ImageTests.cpp │ ├── LocalWindowTests.cpp │ ├── MorphologyTests.cpp │ ├── PNMTests.cpp │ ├── PaletteTests.cpp │ ├── ParametersTests.cpp │ ├── RegionTests.cpp │ ├── Resources/ │ │ ├── 2JohnC1V3-AdOtsu.pbm │ │ ├── 2JohnC1V3-AdOtsuG.pbm │ │ ├── 2JohnC1V3-AdOtsuMS.pbm │ │ ├── 2JohnC1V3-AdOtsuMSG.pbm │ │ ├── 2JohnC1V3-Bataineh.pbm │ │ ├── 2JohnC1V3-Bensen.pbm │ │ ├── 2JohnC1V3-ContrastImage.ppm │ │ ├── 2JohnC1V3-Gatos.pbm │ │ ├── 2JohnC1V3-GroundTruth.pbm │ │ ├── 2JohnC1V3-HighContrastImage.pbm │ │ ├── 2JohnC1V3-ISauvola.pbm │ │ ├── 2JohnC1V3-NICK.pbm │ │ ├── 2JohnC1V3-Niblack.pbm │ │ ├── 2JohnC1V3-Otsu.pbm │ │ ├── 2JohnC1V3-Phansalkar.pbm │ │ ├── 2JohnC1V3-Sauvola.pbm │ │ ├── 2JohnC1V3-Su.pbm │ │ ├── 2JohnC1V3-TRSingh.pbm │ │ ├── 2JohnC1V3-WAN.pbm │ │ ├── 2JohnC1V3-Wolf.pbm │ │ ├── 2JohnC1V3.ppm │ │ └── 2JohnC1V3.psd │ ├── SIMDTests.cpp │ ├── SuTests.cpp │ ├── TestUtilities.hpp │ ├── WienerFilterTests.cpp │ ├── packages.config │ ├── pch.cpp │ └── pch.h ├── Doxa.sln ├── LICENSE └── README.md