我正在尝试在android中使用自适应阈值处理(Bitmap),这需要将其更改为Mat然后将其转换为灰度.
下面是我的代码,从创建位图开始.它们被命名为crop,因为我刚刚在此之前裁剪了照片.
Bitmap bmCrop = BitmapFactory.decodeStream(iStream);
Bitmap bmThreshed = null;
/*
* Initialize the Mats
*/
Mat threshed = new Mat(bmCrop.getHeight(),bmCrop.getWidth(), CvType.CV_8UC1, new Scalar(4));//, new Scalar(4)
//Mat crop = new Mat();
Mat crop = new Mat(bmCrop.getHeight(),bmCrop.getWidth(), CvType.CV_8UC1,new Scalar(4));//, new Scalar(4)
/*
* Convert the Mats to Grayscale
*/
if(!threshed.empty())
Imgproc.cvtColor(threshed, threshed, Imgproc.COLOR_RGB2GRAY,1);// CURRENTLY BREAKING HERE
if(!crop.empty())
Imgproc.cvtColor(crop, crop, Imgproc.COLOR_BGR2GRAY,1);
Utils.bitmapToMat(bmCrop, crop);
// Mat src, Mat dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C
Imgproc.adaptiveThreshold(crop, threshed, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, …Run Code Online (Sandbox Code Playgroud)