在OpenCVSharp中水平翻转图像

时间:2012-03-18 12:45:51

标签: c# .net opencv emgucv flip

我最近将我的项目库从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使用什么。

1 个答案:

答案 0 :(得分:1)

OpenCVSharp中的Flip方法声明为here

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

翻转时的原始OpenCV文档是here

对于dst,请指定cvArrIplImagecvMat与您呼叫cvArr的{​​{1}}相同的大小。

这意味着翻转的数组将被放置在Flip传入的cvArr中,而源数组dst位于OpenCV中,而src位于OpenCVSharp中将保持不变

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

如果您希望获得与之前相同的行为,则可以安全地致电dst,其中myImage是您的myImage.Flip(null, FlipMode.Y);IplImage

如果您使用的是旧版OpenCVSharp,那么Flip也会获取源参数,而不是从调用对象获取它。 E.g cvMat