读取本地存储的一张图片作为减法的背景图片
Read a locally stored image as the background image for subtraction
我正在使用 Emgu.CV
并计划使用背景减法。我想做一些相当简单的事情,从我的本地磁盘读取两张背景图像,并将其中一张用作背景图像,另一张用作叠加层以与遮罩进行比较。
我还没有深入了解,因为该方法的签名与仅接受文件有很大不同。我猜我错过了从 File.Read
到 IInputArray
的一些转换
IBackgroundSubtractor backgroundSubtractor = new BackgroundSubtractorMOG2();
IInputArray inputImage; // how do I create an instance of an InputArray from a local file?
IOutputArray mask;
backgroundSubtractor.Apply(imputImage, mask);
如何从 C:\<somepath>\someimage1.png
格式的文件转换为下面的 IInputArray, IOutputArray
格式?
EmguCv 提供了不同的方法来从文件中加载图像(参见下面的 V1 和 V2)。对于掩码,你只需要定义一个新的 Mat 对象,它会在你调用 backgroundSubtractor.Apply(input1, mask);
时自动分配和填充
//V1 load image
var input1 = new Mat(@"C:\<somepath>\someimage1.png");
//V2 load image
Mat input2 = CvInvoke.Imread(@"C:\<somepath>\someimage1.png", ImreadModes.AnyColor);
var mask = new Mat();
IBackgroundSubtractor backgroundSubtractor = new BackgroundSubtractorMOG2();
backgroundSubtractor.Apply(input1, mask);
Mat class 实现了 IInputtArray 和 IOutputArray。
我正在使用 Emgu.CV
并计划使用背景减法。我想做一些相当简单的事情,从我的本地磁盘读取两张背景图像,并将其中一张用作背景图像,另一张用作叠加层以与遮罩进行比较。
我还没有深入了解,因为该方法的签名与仅接受文件有很大不同。我猜我错过了从 File.Read
到 IInputArray
IBackgroundSubtractor backgroundSubtractor = new BackgroundSubtractorMOG2();
IInputArray inputImage; // how do I create an instance of an InputArray from a local file?
IOutputArray mask;
backgroundSubtractor.Apply(imputImage, mask);
如何从 C:\<somepath>\someimage1.png
格式的文件转换为下面的 IInputArray, IOutputArray
格式?
EmguCv 提供了不同的方法来从文件中加载图像(参见下面的 V1 和 V2)。对于掩码,你只需要定义一个新的 Mat 对象,它会在你调用 backgroundSubtractor.Apply(input1, mask);
//V1 load image
var input1 = new Mat(@"C:\<somepath>\someimage1.png");
//V2 load image
Mat input2 = CvInvoke.Imread(@"C:\<somepath>\someimage1.png", ImreadModes.AnyColor);
var mask = new Mat();
IBackgroundSubtractor backgroundSubtractor = new BackgroundSubtractorMOG2();
backgroundSubtractor.Apply(input1, mask);
Mat class 实现了 IInputtArray 和 IOutputArray。