私はカメラから写真を撮らなければならないアプリケーションを開発しています。その後、写真のエッジスクエア(ドキュメントページのようなもの)を検出します...長い検索の後、これを達成するためのOpenCVライブラリを見つけ、正常にインポートしましたAndroid用のJavaライブラリですが、問題は、opencvのメソッドを呼び出してSquareを検出するときです(メソッドは
Imgproc.findContours(converted、contours、hierarchy、Imgproc.CHAIN_APPROX_SIMPLE、Imgproc.RETR_LIST) )..それは私に与える
例外... OpenCV エラー: _CvContourScanner* cvStartFindContours(void*, CvMemStorage*, int, int, int, CvPoint) 内のサポートされていない形式または形式の組み合わせ (FindContours は 8uC1 および 32sC1 画像のみをサポート)、ファイル /home/reports/ci/スレーブ/50-SDK/opencv/modules/imgproc/src/contours.cpp、196 行目
私はあなたにいくつかのコードを送ります------------------------------------------- -----------
public void convertImage() {
Mat ori = new Mat();
Mat converted = new Mat(200, 200, CvType.CV_8UC1, new Scalar(0));
try {
ori = Utils.loadResource(MainActivity.this, R.drawable.ic_launcher, Highgui.CV_LOAD_IMAGE_COLOR);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Imgproc.cvtColor(ori, converted, Imgproc.COLOR_RGB2GRAY, 4); // convert Image to grayscale
Imgproc.threshold(ori, converted, 50, 250, Imgproc.ADAPTIVE_THRESH_MEAN_C); // threshold the image
List<MatOfPoint> contours = new ArrayList<MatOfPoint>(10);
Mat hierarchy = new Mat(200, 200, CvType.CV_32FC1, new Scalar(0));
Imgproc.findContours(converted, contours, hierarchy,Imgproc.CHAIN_APPROX_SIMPLE,Imgproc.RETR_LIST);
ImageView frame = (ImageView) findViewById(R.id.imageView1);
Imgproc.cvtColor(converted, converted, Imgproc.COLOR_GRAY2RGBA, 4); // convert Image back to RGB
Bitmap bmp = Bitmap.createBitmap(converted.cols(), converted.rows(), Bitmap.Config.ARGB_8888);
frame.setImageBitmap(bmp);
}
どんな助けでも感謝します------------------ 事前に感謝します