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, detectRegionslarge
  • 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-325trivial, 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions