Я пытаюсь использовать android-opencv 2.3.1 для распознавания кругов (монет) на изображении. Однако возникает ошибка (org.opencv.cvException), выполняя метод Imgproc.cvtColor.Android OpenCv HoughCircles
File imgFile = new File(Environment.getExternalStorageDirectory() + "/test.jpg");
imageBmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
Mat mImg = new Mat();
mImg = Utils.bitmapToMat(imageBmp);
Mat mGray = new Mat(mImg.rows(), mImg.cols(), CvType.CV_8UC1, new Scalar(0));
Imgproc.cvtColor(mImg , mGray, Imgproc.COLOR_BGRA2GRAY, 4);
Imgproc.GaussianBlur(mGray , mGray , new Size(9, 9), 2, 2);
Mat circles = new Mat();
Imgproc.HoughCircles(mGray , circles, Imgproc.CV_HOUGH_GRADIENT, 1d, (double)
mGray.height()/70, 200d, 100d);
Что я делаю неправильно? сотового телефона: Samsung Galaxy S i9000
Просто обновляю свой вопрос с новым кодом. Он по-прежнему дает ту же ошибку методом «Imgproc.cvtColor».
File imgFile = new File(Environment.getExternalStorageDirectory() + "/test.jpg");
imageBmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
Mat mImg = new Mat();
mImg = Utils.bitmapToMat(imageBmp);
Mat mGray = new Mat(mImg.rows(), mImg.cols(), CvType.CV_8UC1);
Imgproc.cvtColor(mImg, mGray, Imgproc.COLOR_BGRA2GRAY);
Imgproc.GaussianBlur(mGray, mGray, new Size(9, 9), 2, 2);
Mat circleImage = new Mat(mGray.rows(), mGray.cols(), CvType.CV_8UC1);
Imgproc.HoughCircles(mGray, circleImage, Imgproc.CV_HOUGH_GRADIENT, 1d,
(double) mGray.height()/70, 200d, 100d);
Я внесла изменения, но по-прежнему дает ту же ошибку. –
Можете ли вы обновить свой вопрос, пожалуйста? возможно, просто добавьте новый переработанный код, чтобы мы теперь посмотрели, как он выглядит. – fireant
Несомненно. Я отправлю свой код ниже. –