在OpenCVSharp中水平翻转图像

问题描述 投票:1回答:1

我最近将我的项目库从Emgu CV转移到了OpenCVSharp。在Emgu CV中翻转图像的代码(使用pictureBox)是:

Image<Bgr,Byte> f = _capture.QueryFrame().Flip(Emgu.CV.CvEnum.FLIP.HORIZONTAL)

我尝试在OpenCVSharp中使用Flip(CvArr dst, FlipMode flip_mode)方法,但是徒劳无功。我不知道如何使用dst

c# .net opencv emgucv flip
1个回答
1
投票

OpenCVSharp中的Flip方法声明为here

EmguCV中的Flip方法在4162行here上声明。它将dst设置为null(IntPtr.Zero in其定义)。

翻转的原始OpenCV文档是here

对于dst,要么指定一个cvArr(无论IplImage还是cvMat与你称之为cvArrFlip大小相同。

这意味着翻转的数组将被放置在您传入的cvArr中,如dst,OpenCV中的源数组src和OpenCVSharp中的this将保持不变。

如果dst为null,则数组将被翻转到位。这意味着您的源数组将更改为翻转数组。

如果你想要和以前一样的行为,你可以安全地调用myImage.Flip(null, FlipMode.Y);,其中myImage是你给定的IplImagecvMat

如果您使用的是旧版OpenCVSharp,那么Flip也会获取源参数,而不是从调用对象获取它。例如,Flip(img, null, FlipMode FlipMode.Y);

© www.soinside.com 2019 - 2024. All rights reserved.