opencv的mat怎么换成emgucv的mat
时间: 2023-08-20 14:07:26 浏览: 203
要将OpenCV的Mat对象转换为Emgu CV的Mat对象,可以使用以下代码:
```
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
Mat mat = ... // 获取OpenCV的Mat对象
Image<Bgr, Byte> img = new Image<Bgr, Byte>(mat.ToImage<Bgr, Byte>().Bitmap);
Mat emguMat = img.Mat;
```
这里,我们首先将OpenCV的Mat对象转换为Emgu CV的Image<Bgr, Byte>对象,然后从Image<Bgr, Byte>对象中获取Mat对象。需要注意的是,由于Emgu CV默认使用的是BGR格式,因此需要将OpenCV的Mat对象转换为BGR格式。如果OpenCV的Mat对象使用的是灰度图像,可以使用以下代码进行转换:
```
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
Mat mat = ... // 获取OpenCV的Mat对象
Image<Gray, Byte> img = new Image<Gray, Byte>(mat.ToImage<Gray, Byte>().Bitmap);
Mat emguMat = img.Mat;
```
同样地,如果需要频繁进行Mat对象之间的转换,建议使用Emgu CV库,它可以直接将Mat对象转换为Bitmap对象,也可以直接在Mat对象上进行图像处理。
阅读全文