using OpenCvSharp; public static class ImageUtils { public static bool TryRead(string path, out Mat mat) { mat = Cv2.ImRead(path, ImreadModes.Color); return !mat.Empty(); } public static void Save(Mat mat, string path) { mat.ImWrite(path); } // Apply mask to image: where mask==0 set to black public static Mat ApplyMask(Mat src, Mat mask) { Mat dst = new Mat(); if (mask.Type() != MatType.CV_8U) { Mat tmp = new(); mask.ConvertTo(tmp, MatType.CV_8U); mask = tmp; } Cv2.BitwiseAnd(src, src, dst, mask); return dst; } }