如何使用CV_8UC1类型保存OpenCvSharp.Mat?

时间:2018-02-05 09:46:45

标签: c# .net vb.net opencv opencvsharp

我编写了以下代码来加载任何类型的图片, 我将其转换为CV_8UC1类型然后再将其保存在文件中。

问题是当我加载保存的图像时,它不是CV_8UC1类型而是CV_8UC3类型。

我哪里错了?

    private void SaveTest()
    {
        var fileName = @"F:\src.png";
        Mat src = new Mat(fileName);
        var gray = src.CvtColor(ColorConversionCodes.BGR2GRAY);
        Debug.Assert(gray.Type() == MatType.CV_8UC1);

        var fileName2 = @"F:\temp.png";
        gray.ImWrite(fileName2);
        Mat test = new Mat(fileName2);
        Debug.Assert(test.Type() == MatType.CV_8UC1);
    }

1 个答案:

答案 0 :(得分:2)

改为改变:

Mat test = new Mat(fileName2);

这样:

Mat test = new Mat(fileName2, ImreadModes.Unchanged);