Skip to content

OpenCV 5.x API coverage: photo, text, saliency, shape, superres, ximgproc gaps #2015

Description

@shimat

Summary

Audit of the photo, text, saliency, shape, and superres (opencv_contrib) OpenCV 5.x C++ API surface against the current OpenCvSharp C# wrapper. Part of a broader coverage sweep that started from closing the geometry/segment.hpp gap (#2000/#2001).

Baseline: opencv_contrib @ 755e506 (pinned submodule commit on main).

Gaps by module

photo — one whole header unwrapped (1 item)
  • ColorCorrectionModel + 6 supporting enums + gammaCorrection free function (ccm.hpp:26-144) — color calibration model (CCM); entire header unwrapped — large
text — Tesseract OCR and CNN text detection work today; the ER-filter region pipeline and HMM/beam-search decoders (non-Tesseract paths) are entirely unwrapped — roughly 85% of the module's surface by item count (2 items)

Confirmed already covered: BaseOCR, OCRTesseract, TextDetector, TextDetectorCNN, detectTextSWT.

  • ER-filter pipeline (erfilter.hpp:66-367): ERStat, ERFilter + Callback, createERFilterNM1/NM2, loadClassifierNM1/NM2, ERFILTER_NM_RGBLGrad/IHSGrad enum, computeNMChannels, erGrouping_Modes enum, erGrouping, MSERsToERStats, detectRegions — large
  • Non-Tesseract OCR decoders (ocr.hpp:67-537): OCRHMMDecoder + ClassifierCallback, OCRBeamSearchDecoder + ClassifierCallback, OCRHolisticWordRecognizer, plus loaders (loadOCRHMMClassifierNM/CNN/generic, createOCRHMMTransitionsTable, loadOCRBeamSearchClassifierCNN) and enums (page_seg_mode, ocr_engine_mode, decoder_mode, classifier_type) — large
saliency / shape / superres — all three are essentially done; trivial gaps only (3 items)
  • StaticSaliencySpectralResidual.Read/Write (saliencySpecializedClasses.hpp:89,90) — serialize/deserialize algorithm state for persistence — small
  • ShapeContextDistanceExtractor.GetCostExtractor/GetTransformAlgorithm (shape_distance.hpp:167,182) — setters exist, getters don't (native+C#) — small
  • SuperResolution.OpticalFlow property (superres.hpp:163-165) — native bridge and P/Invoke already exist; the C# property body is just commented out as TODO in SuperResolution.cs:307-325 — trivial, uncomment + wire up
ximgproc — 25 of ~31 sub-headers are fully wrapped; the remaining six are whole unwrapped headers (6 items)

Fully covered: edge_filter, edgeboxes, edge_drawing, segmentation, superpixel LSC/SEEDS/SLIC, structured_edge_detection, fast_line_detector, ridgefilter, weighted_median_filter, run_length_morphology, color_match, deriche/paillou filters, brightedges, peilin, estimated_covariance, edgepreserving_filter, fast_hough_transform (HoughPoint2Line).

  • DisparityFilter/DisparityWLSFilter + createDisparityWLSFilter/createDisparityWLSFilterGeneric/createRightMatcher (disparity_filter.hpp:52,86,135,143,153) — WLS disparity-map post-filtering, commonly paired with StereoBM/SGBM; entire header unwrapped — large
  • SparseMatchInterpolator/EdgeAwareInterpolator/RICInterpolator + factories (sparse_match_interpolator.hpp:52,77,138,146,265) — sparse-to-dense flow interpolation, used with DIS/RLOF pipelines; entire header unwrapped — large
  • ScanSegment + createScanSegment (scansegment.hpp:23,80) — F-DBSCAN superpixel segmentation; sibling SEEDS/SLIC/LSC already wrapped — medium
  • ContourFitting + fourierDescriptor/transformFD/contourSampling (fourier_descriptors.hpp:20,87,97,106,114) — Fourier-descriptor contour fitting/matching — medium
  • findEllipses (find_ellipses.hpp:30) — AAMED ellipse detection — small
  • RadonTransform (radon_transform.hpp:31) — Radon transform of an image (don't confuse with the already-wrapped HoughPoint2Line) — small

Fully covered, no action needed

ptcloud, quality, xphoto, dnn_superres — verified with zero findings across their full CV_EXPORTS_W/CV_WRAP surface.

Notes

Effort tags: small = a native bridge function/property + thin C# wrapper; medium = a small class or multi-member accessor set; large = a substantial class or multi-class family.

Activity

  1. added
    enhancementNew feature or improvement to OpenCvSharp
    on Jul 5, 2026
  2. added a commit that references this issue on Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement to OpenCvSharp

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions