如何用 CV_8UC1 类型保存 OpenCvSharp.Mat?
How save OpenCvSharp.Mat with CV_8UC1 type?
我写了下面的代码来加载任意类型的图片,
我将其转换为 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);
}
只需更改为:
Mat test = new Mat(fileName2);
这个:
Mat test = new Mat(fileName2, ImreadModes.Unchanged);
我写了下面的代码来加载任意类型的图片, 我将其转换为 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);
}
只需更改为:
Mat test = new Mat(fileName2);
这个:
Mat test = new Mat(fileName2, ImreadModes.Unchanged);