好,所以我想我明白了!
看来Xamarin中的OpenCV示例使用缓冲区中的原始数据流,并且默认情况下以90度角出现,无论您具有相机的UI布局或设置/参数的方向。
所以,我返工内码ProcessedCameraPreview
protected override void OnDraw(Android.Graphics.Canvas canvas)
本来我是转换图像对象下面对本机的Android位图和旋转的。性能受到很大影响。
Image image = _bgrBuffers.GetBuffer(0);
所以,我想通了,如果我做了以下内容: -
Image rotateImage = image.Rotate(90, new Bgr(System.Drawing.Color.Black));
canvas.DrawBitmap(rotateImage.ToBitmap(), 0, 0, _paint);
在90度角的要求它将呈现。性能影响并不十分明显。
我现在有图像对象,我需要执行我想要使用的OpenCV函数。
P.S.值得注意的另一个值得注意的方法是使用Canvas旋转画面: -
Matrix matrix = new graphics.Matrix();
matrix.PostRotate(90);
DrawBitmap(image.ToBitmap(), matrix, _paint);
对性能的影响并不明显。