Eclipse + opencv 2.4.6 + java api에서 작업 중입니다.OpenCV 오류 : 알 수없는 함수에서 어설 션 실패 (ptnum> 3), 파일 (Java + opencv 2.4.6)
지금 나는이 컴파일 오류가 있습니다
OpenCV Error: Assertion failed (ptnum > 3) in unknown function, file ..\..\..\src\opencv\modules\imgproc\src\contours.cpp, line 1969 Exception in thread "main" CvException [org.opencv.core.CvException: ..\..\..\src\opencv\modules\imgproc\src\contours.cpp:1969: error: (-215) ptnum > 3 ]
at org.opencv.imgproc.Imgproc.convexityDefects_0(Native Method)
at org.opencv.imgproc.Imgproc.convexityDefects(Imgproc.java:3170)
부분 코드입니다 : 당신은 날
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();
Imgproc.findContours(imgframe,contours , hierarchy,Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE,new Point(0,0));
for(int i=0;i<contours.size();i++) {
Imgproc.drawContours(imgframe, contours,i,new Scalar(255,0,255),2,8,hierarchy,0,new Point());
MatOfInt hull_=new MatOfInt();
MatOfInt4 convexityDefects=new MatOfInt4();
Imgproc.convexHull(contours.get(0), hull_);
Imgproc.convexityDefects(contours.get(0), hull_, convexityDefects);
}
도와 드릴까요? 감사의
그것은 단지 추측하지만 난에 문제가 볼록 선체에있는 점의 수에 달려있다 생각 : 쉽게
for
루프에if
를 사용하여 확인할 수 있습니다. 가능한'convexityDefect '를 사용하려면 적어도 3 포인트가 있어야합니다. 확인하기에 충분히 쉬워야합니다 ... – Mahm00dMahmm00d 와우! 해결됨, hull_.width()> = 3인지 확인하십시오! 고마워요! :) – user2715082
다행스럽게도 도움이 될 수 있습니다 :). 나는 대답으로 게시하는 편이 낫다고 생각한다. – Mahm00d