OpenCV4Android cvtColor崩溃

时间:2017-05-23 01:37:34

标签: 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);
    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_or line并返回output_image,然后它就可以了。

我正在使用cvtColor来增加频道数量,但是因为我的应用程序正在崩溃。为什么会这样?有没有其他方法可以增加频道数量?

我是OpenCV以及Android开发的新手,所以我不太了解。请帮忙。提前谢谢。

编辑:

不知何故,这段代码正在运行(不确定原因),但它没有做任何事情(没有边缘检测):

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;
}

0 个答案:

没有答案