您好我是OpenCV和Android的新手,我正在运行教程示例,但是相机方向已经旋转,我已尝试使用此代码修复它:
mRgba = inputFrame.rgba();
Mat mRgbaT = mRgba.t();
Core.flip(mRgba.t(), mRgbaT, 1);
Imgproc.resize(mRgbaT, mRgbaT, mRgba.size());
return mRgbaT;
这样可以正常工作一分钟左右,在一分钟内捕获并正确表示帧,但之后我得到SIGSev BpMemory失败并且应用程序崩溃。
是否有任何解决方法可以更改相机方向而无需进行翻转和图像调整大小?
感谢您的帮助和建议。
答案 0 :(得分:0)
如果您正在使用android.hardware.Camera
和自定义相机应用程序,那么您的问题可能是它默认为布局模式,这可能是您将其转换为垫子时设置方向的原因。
您是否可以提供更多关于如何将相机输出传递到使用openCV的模块的上下文?
打开相机电话后:
mCamera.setDisplayOrientation(90);
答案 1 :(得分:0)
您可以使用类似的方法来更改方向。
Mat draw = new Mat(mRgba.rows(),mRgba.cols(),mRgba.type());
Mat show = new Mat(mRgba.rows(),mRgba.cols(),mRgba.type());
Mat how = new Mat(mRgba.rows(),mRgba.cols(),mRgba.type());
Core.transpose(draw,how);
Imgproc.resize(how, show, show.size(),0,0,0);
Core.flip(show,draw,1);
return draw;