OpenCV4Android cvtColor崩溃

OpenCV4Android cvtColor崩溃,android,opencv,canny-operator,bitwise-or,Android,Opencv,Canny Operator,Bitwise Or,下面是我的代码: public Mat onCameraFrame(CvCameraViewFrame inputFrame) { Mat input_image = inputFrame.rgba(); Mat output_image = new Mat(input_image.size(), CvType.CV_8UC1); Mat output_image2 = new Mat(input_image.size(), CvType.CV_8UC4); Ma

下面是我的代码:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    Mat input_image = inputFrame.rgba();
    Mat output_image = new Mat(input_image.size(), CvType.CV_8UC1);
    Mat output_image2 = new Mat(input_image.size(), CvType.CV_8UC4);
    Mat output_image3 = new Mat(input_image.size(), CvType.CV_8UC4);
    Imgproc.Canny(input_image, output_image, 100, 200);
    Imgproc.cvtColor(output_image, output_image2, Imgproc.COLOR_GRAY2BGRA, 4);
    bitwise_or(input_image, output_image2, output_image3);
    return output_image3;
}
我的应用程序总是在运行一段时间(大约2分钟)后崩溃。然而,如果我注释掉cvtColor line&bitwise\u或line并返回output\u image,那么它就可以正常工作了

我正在使用cvtColor来增加频道的数量,但由于它,我的应用程序正在崩溃。为什么会这样?有没有其他办法增加频道的数量

我对OpenCV和Android开发都是新手,所以我知道的不多。请帮忙。提前谢谢

编辑:

不知怎的,这段代码正在工作(不确定为什么),但它什么也没做(没有边缘检测):


你也可以粘贴logcat输出吗?我想可能是因为
OOM
内存不足。@ZdaR刚刚在logcat文件中添加了错误消息。请帮忙!我认为此错误消息与
OpenCV
没有任何关系。在Canny的边缘检测之前,您是否尝试过执行cvtColor?@MrOnyszko在这种情况下,我只是得到一张彩色图像。没有边缘检测。一段时间后,应用程序仍然崩溃。
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    Mat rgba = inputFrame.rgba();
    Mat mIntermediateMat = new Mat();
    Imgproc.Canny(rgba, mIntermediateMat, 80, 90);
    Imgproc.cvtColor(mIntermediateMat, rgba, Imgproc.COLOR_GRAY2BGRA, 4);
    bitwise_or(inputFrame.rgba(), rgba, rgba);
    return rgba;
}