我最近将我的项目库从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
使用什么。
答案 0 :(得分:1)
OpenCVSharp中的Flip方法声明为here。
EmguCV中的Flip方法在4162行here上声明。它将dst设置为null(IntPtr.Zero in in definition)。
翻转时的原始OpenCV文档是here。
对于dst
,请指定cvArr
(IplImage
或cvMat
与您呼叫cvArr
的{{1}}相同的大小。
这意味着翻转的数组将被放置在Flip
传入的cvArr
中,而源数组dst
位于OpenCV中,而src
位于OpenCVSharp中将保持不变
如果this
为null,则数组将被翻转到位。这意味着您的源数组将被更改为翻转数组。
如果您希望获得与之前相同的行为,则可以安全地致电dst
,其中myImage是您的myImage.Flip(null, FlipMode.Y);
或IplImage
。
如果您使用的是旧版OpenCVSharp,那么Flip也会获取源参数,而不是从调用对象获取它。 E.g cvMat