OpenCV for Android:当我将彩色图像转换为灰度时出现错误



我想将彩色图像转换为灰度。为此,我使用openCV的cvtColor()方法,但它给出以下错误:

OpenCV Error: Assertion failed (scn == 1 && (dcn == 3 || dcn == 4)) in void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int), file /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp, line 3789

这是我的代码:

img= Highgui.imread(pathToImage);
    /*Mat convert= new Mat(img.size(), CvType.CV_8UC3);
converted=new Mat(img.size(), CvType.CV_8UC3, new Scalar(255,
        255, 255));*/
    Imgproc.cvtColor(img,img,Imgproc.COLOR_GRAY2RGBA,0); 

    Imgproc.threshold(finalresult, converted, 254, 255, 1 /* THRESH_BINARY_INV */);     
    bitmap1=Bitmap.createBitmap(finalresult.cols(), finalresult.rows(), Bitmap.Config.ARGB_8888);
    System.out.println(""+finalresult);
    Utils.matToBitmap(finalresult, bitmap1);
    canvas = new Canvas(bitmap1);
    iv.setImageBitmap(bitmap1);
    }catch(Exception e)
    {
        System.out.println(e.toString());
    }

您使用了错误的标志。修改Imgproc中的第三个参数。来自Imgproc的cvtColor。COLOR_GRAY2RGBA到Imgproc.COLOR_BGRA2GRAY。

最新更新