android opencv findcontours()不支持的格式异常

时间:2017-01-04 05:36:35

标签: android opencv

我正在尝试编写一个Android应用程序,允许从设备实时处理相机进纸以检测轮廓。尽管在线有很多例子,但是当我运行以下代码时,会抛出异常(也在下面显示)。

代码:

Bitmap image = mTextureView.getBitmap();
Mat mat = new Mat();
Mat matConverted = new Mat();
Utils.bitmapToMat(image, mat);
mat.convertTo(matConverted, CvType.CV_32SC1);
List<MatOfPoint> contours = new ArrayList<>();
Imgproc.findContours(matConverted, contours, new Mat(), Imgproc.RETR_FLOODFILL, 
    Imgproc.CHAIN_APPROX_SIMPLE);

例外:

CvException [org.opencv.core.CvException: cv::Exception:
/Volumes/Linux/builds/master_pack-android/opencv/modules/imgproc/src/contours.cpp:198:
error: (-210) [Start]FindContours supports only CV_8UC1 images when mode !=
CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function _CvContourScanner* 
cvStartFindContours(void*, CvMemStorage*, int, int, int, CvPoint)

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

尝试

Mat matConverted = new Mat(mat.size(), CvType.CV_8UC1);

就我而言,它有效