我使用AndroidStudio2.3版本
我使用OpenCV3.2为Android和android版本的手机是4.4.2
这是我的一些源代码。
请注意案例VIEW_MODE_CANNY
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
final int viewMode = mViewMode;
switch(viewMode){
case VIEW_MODE_RGBA:
mRgba = inputFrame.rgba();
break;
case VIEW_MODE_GRAY:
Imgproc.cvtColor(inputFrame.gray(), mRgba, Imgproc.COLOR_GRAY2RGBA, 4);
break;
case VIEW_MODE_CANNY:
try{
Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY);
Imgproc.GaussianBlur(mGray, mGray, new Size(5, 5), 2, 2);
Imgproc.Canny(mGray, mIntermediateMat, 35, 75);
Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2BGRA, 4);
}catch(Exception e){
Log.i(TAG,e.toString());
e.printStackTrace();
}
break;
}
return mRgba;
}我的应用程序显示了3个不同的视图。灰色、颜色与Canny
灰色和颜色运行良好。
但如果我选择精明,它就会自动终止。
没有日志也没有例外
我甚至猜不出为什么
请给我小费..。
发布于 2017-03-22 14:46:12
在我看来,错误就在这一行:
Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY);应:
Imgproc.cvtColor(inputFrame.rgba(), mGray, Imgproc.COLOR_RGBA2GRAY); 它会崩溃,因为您将未初始化的输入映像提供给cvtColor。
顺便说一句,您的VIEW_MODE有点混乱:不清楚它是指您获得的输入类型,还是您想要生成的输出类型。
https://stackoverflow.com/questions/42952173
复制相似问题