0
저는 Android 바이너리를 사용하고 있습니다. OpenCV에서 거리 변환을 수행하는 것은 이번이 처음입니다. OpenCV specification은 distanceTransform의 출력 이미지가 32 비트 부동 소수점 단일 채널 이미지라고 말합니다. 이것을 mat (mDist)로 가져 오지만 매트에서 비트 맵을 만들면 IllegalStateException이 발생합니다. 이것은 출력물과 매트 오브젝트의 비 호환성 때문입니까? 매트 등의 색상 채널 정보를 지정해야합니까? 다음은 내 코드 부분입니다.OpenCV 출력 오류에서의 거리 변환
Mat mImg = new Mat();
Mat mThresh = new Mat();
Mat mDist = new Mat();
ImageView imgView = (ImageView) findViewById(R.id.imageView);
Bitmap bmpIn = BitmapFactory.decodeResource(getResources(),
R.drawable.w1);
Utils.bitmapToMat(bmpIn, mImg); //Load image to mat
Imgproc.cvtColor(mImg, mImg, Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(mImg, mThresh, 0, 255, Imgproc.THRESH_BINARY
| Imgproc.THRESH_OTSU); //Grayscale and thresholding
Imgproc.distanceTransform(mThresh, mDist, Imgproc.CV_DIST_L2, Imgproc.CV_DIST_MASK_PRECISE);
Bitmap bmpOut = Bitmap.createBitmap(mDist.cols(), mDist.rows(),
Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mDist, bmpOut); //Error in creating bitmap
imgView.setImageBitmap(bmpOut);