이미지에서 원 (동전)을 인식하기 위해 android-opencv 2.3.1을 사용하려고합니다. 그러나 Imgproc.cvtColor 메소드를 실행하여 오류가 발생합니다 (org.opencv.cvException).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);
내가 뭘 잘못하고 있니? 핸드폰 : 그냥 새로운 코드로 내 질문에 업데이트 삼성 갤럭시 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
예. 아래 코드를 게시합니다. –