public static bool TryGetExactPixelFormat(PixelFormat src, out CVDEPTHTYPE dst) { switch (src.Code) { case Pixel.Alpha8.Code: { dst = CVDEPTHTYPE.CV_8UC1; return(true); } case Pixel.Luminance8.Code: { dst = CVDEPTHTYPE.CV_8UC1; return(true); } case Pixel.Luminance16.Code: { dst = CVDEPTHTYPE.CV_16UC1; return(true); } case Pixel.Luminance32F.Code: { dst = CVDEPTHTYPE.CV_32FC1; return(true); } case Pixel.BGR24.Code: { dst = CVDEPTHTYPE.CV_8UC3; return(true); } case Pixel.BGRA32.Code: { dst = CVDEPTHTYPE.CV_8UC4; return(true); } case Pixel.BGRP32.Code: { dst = CVDEPTHTYPE.CV_8UC4; return(true); } case Pixel.BGR96F.Code: { dst = CVDEPTHTYPE.CV_32FC3; return(true); } case Pixel.BGRA128F.Code: { dst = CVDEPTHTYPE.CV_32FC4; return(true); } } dst = default; return(false); }
// https://github.com/shimat/opencvsharp/wiki/Accessing-Pixel #region pixel format public static bool TryGetExactPixelFormat(CVDEPTHTYPE inFmt, out PixelFormat outFmt) { if (inFmt.IsInteger) { if (inFmt == CVDEPTHTYPE.CV_8UC1) { outFmt = Pixel.Luminance8.Format; return(true); } if (inFmt == CVDEPTHTYPE.CV_16UC1) { outFmt = Pixel.Luminance16.Format; return(true); } if (inFmt == CVDEPTHTYPE.CV_8UC3) { outFmt = Pixel.BGR24.Format; return(true); } if (inFmt == CVDEPTHTYPE.CV_8UC4) { outFmt = Pixel.BGRA32.Format; return(true); } } else { if (inFmt == CVDEPTHTYPE.CV_32FC1) { outFmt = Pixel.Luminance32F.Format; return(true); } if (inFmt == CVDEPTHTYPE.CV_32FC3) { outFmt = Pixel.BGR96F.Format; return(true); } if (inFmt == CVDEPTHTYPE.CV_32FC4) { outFmt = Pixel.BGRA128F.Format; return(true); } } outFmt = default; return(false); }