제발 도와주세요,자바 안드로이드 Opencv 2.3
안드로이드에서 볼록 헐에 문제가 있습니다. Java 및 OpenCV 2.3을 사용합니다. 나는 자바를 만든 전에
, 나는 비주얼 스튜디오 2008
이 코드는 C에서 성공적으로 실행 할 수 있습니다 ++와 C++에 그것을했다.
이제 C++에서 Android 용 Java로 변환하고 싶습니다. 그리고 SDK Android Android 시뮬레이터에서 실행할 때 "강제 종료"와 같은 오류가 발견되었습니다.
이것은 ++ C에 내 코드입니다 :
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours(canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
drawing = Mat::zeros(canny_output.size(), CV_64F);
/// Find the convex hull object for each contour
vector<vector<Point> > hull (contours.size());
for(int i = 0; i < contours.size(); i++)
{ convexHull(Mat(contours[i]), hull[i], false);
}
for(size_t i = 0; i < contours.size(); i++){
drawContours(drawing, hull, i, Scalar(255, 255, 255), CV_FILLED); // FILL WHITE COLOR
}
그리고 이것은 안드로이드에 내 코드입니다 : 귀하의 정보에 대한
Mat hierarchy = new Mat(img_canny.rows(),img_canny.cols(),CvType.CV_8UC1,new Scalar(0));
List<Mat> contours =new ArrayList<Mat>();
List<Mat> hull = new ArrayList<Mat>(contours.size());
drawing = Mat.zeros(img_canny.size(), im_gray);
Imgproc.findContours(img_dilasi, contours, hierarchy,Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0, 0));
for(int i=0; i<contours.size(); i++){
Imgproc.convexHull(contours.get(i), hull.get(i), false);
}
for(int i=0; i<contours.size(); i++){
Imgproc.drawContours(drawing, hull, i, new Scalar(255.0, 255.0, 255.0), 5);
}
, 나는 내 코드에서 볼록 선체에 약간 수정을했다. 윤곽선 내부에 색상을 기입합니다.
누구든지 내 문제를 해결할 수 있습니까?
귀하의 도움에 매우 감사드립니다.
문제의 원인을 파악하기가 어렵습니다. 어떤 오류가 발생합니까? 거기에 관련된 로그 출력이 있습니까? – Aurelius
SDK Android 시뮬레이터에서 실행할 때 "응용 프로그램이 예기치 않게 중지되었습니다"라는 Windows 오류가 나타나고 "강제 종료"를 클릭하여 중지해야한다고 들었습니다. Log Cat error Eclipse에서이 줄에서 "Imgproc.convexHull (contours.get (i), hull.get (i), false);" 프로세스가 그 행에서 중지 된 이유를 알 수 없습니다. 나에게 설명 할 수 없습니까? – Jenang
"선체"변수를 선언 할 때 실수를 저질렀다고 생각합니다. 하지만 그 문제를 해결하는 방법을 모르겠습니다. 나는 해당 조항에 따라 그 변수를 선언했다고 생각합니다. 귀하의 의견은 어떻습니까? 코드에서 "hull"변수의 선언이 올바르지 않다고 생각하십니까? – Jenang