OpenCV의 solvePNP에서 포인트 수에 대한 어설 션이 실패합니다.

알렉스

다음 코드를 고려하십시오.

  std::vector<cv::Point2f> vecUV = Vec2DFromFile(argv[2]);
  std::vector<cv::Point3f> vecXYZ = Vec3DFromFile(argv[3]);

  cv::Mat matCalib(3, 3, CV_64F);
  cv::setIdentity(matCalib);

  cv::Mat matRot(3, 1, CV_64F);
  cv::Mat matTrans(3, 1, CV_64F);

  cv::Mat matDistortion = cv::Mat::zeros(4, 1, CV_64F);

  cv::solvePnP(vecUV, vecXYZ, matCalib, matDistortion, matRot, matTrans);

여기서 vecUV와 vecXYZ는 모두 크기 4입니다. 이것은 다음과 함께 실패합니다.

OpenCV(3.4.1) Error: Assertion failed (( (npoints >= 4) || (npoints == 3 && flags == SOLVEPNP_ITERATIVE && useExtrinsicGuess) ) && npoints == std::max(ipoints.checkVector(2, 5), ipoints.checkVector(2, 6))) in solvePnP, file /var/tmp/portage/media-libs/opencv-3.4.1-r5/work/opencv-3.4.1/modules/calib3d/src/solvepnp.cpp, line 65
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.1) /var/tmp/portage/media-libs/opencv-3.4.1-r5/work/opencv-3.4.1/modules/calib3d/src/solvepnp.cpp:65: error: (-215) ( (npoints >= 4) || (npoints == 3 && flags == SOLVEPNP_ITERATIVE && useExtrinsicGuess) ) && npoints == std::max(ipoints.checkVector(2, 5), ipoints.checkVector(2, 6)) in function solvePnP

나는 각 벡터에 대해 4 점이 있다는 점을 감안할 때 어설 션이 실패하는 이유를 이해하지 못합니다. gdb를 사용하여 한 단계 씩 시도했지만 아무 소용이 없습니다.

...
(gdb) s
cv::_InputArray::init (this=0x7fffffffe350, _flags=-2130509811, _obj=0x7fffffffe2f0)
    at /usr/include/opencv2/core/mat.inl.hpp:67
67      { flags = _flags; obj = (void*)_obj; }
(gdb) s
cv::_InputArray::_InputArray<cv::Point_<float> > (this=0x7fffffffe350, 
    vec=std::vector of length 4, capacity 4 = {...}) at /usr/include/opencv2/core/mat.inl.hpp:85
85      { init(FIXED_TYPE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_READ, &vec); }
(gdb) s
OpenCV(3.4.1) Error: Assertion failed (( (npoints >= 4) || (npoints == 3 && flags == SOLVEPNP_ITERATIVE && useExtrinsicGuess) ) && npoints == std::max(ipoints.checkVector(2, 5), ipoints.checkVector(2, 6))) in solvePnP, file /var/tmp/portage/media-libs/opencv-3.4.1-r5/work/opencv-3.4.1/modules/calib3d/src/solvepnp.cpp, line 65
terminate called after throwing an instance of 'cv::Exception'
0x00007ffff6e7334f in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/libstdc++.so.6

나는 this , m this and this answer 을 읽었 지만 동일한 경우가 아닌 것 같습니다. 잘못된 매개 변수 유형이 비난되었습니다.

재현 가능한 최소한의 예제가있는 .zip- 입력 파일을 두 번째 및 세 번째 매개 변수로 전달하고 첫 번째 매개 변수는 예약됩니다.

Catree

OpenCV 문서를 살펴보십시오 . 3.4.1버전 을 사용하고 있으므로 에 대한 설명서 solvePnP여기에 있습니다 .

objectPoints다음 먼저 imagePoints입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

모의 함수에 대한 어설 션이 실패합니다.

올바른 인수를 전달할 때 모의에 대한 실패한 어설션을 증언합니다.

Jmeter의 포함 조건에서 어설션이 실패합니다.

포함 메서드에 대한 정규식으로 Cypress 어설션이 실패합니다.

함수 포인터에 대한 어설 션 실패

AssertionError: 어설션 실패: Databricks의 DeleteFromTable에 대한 계획이 없습니다.

에 대한 clojure 테스트 케이스 어설 션 실패

'contourArea'함수에서 OpenCV (4.0.0) 어설 션이 실패했습니다.

통사론 적 설탕 || '.'에 대한 확인이 실패합니다. || 어떻게 가져 오거나 전역 변수를 설정합니까?

설정에서 포인트에 대한 관계를 업데이트합니다.

설정에서 포인트에 대한 관계를 업데이트합니다.

SoapUi의 "Contains" 어설션에 있는 Regex로 인해 어설션이 항상 실패합니까?

pytest는 어설 션 실패에 대해 너무 많이보고합니다.

FakeItEasy 모의 mediatr.send 메서드에 대한 호출이 어설션 실패

temp (유형 인터페이스 {})를 equalStringArray에 대한 인수의 유형 [] string으로 사용할 수 없습니다. 유형 어설 션이 필요합니다.

OpenCV 오류 : 간단한 얼굴 감지 초보자 코드에서 어설 션이 실패했습니다.

거대한 xarray에서 데이터 포인트의 nan x %를 무작위로 마스킹 / 설정합니다.

OpenCV 어설 션 실패 오류 : (-215) scn == 3 || cv :: cvtColor 함수의 scn == 4가 교대로 작동합니다.

Gradle 동기화 실패 : com / intellij / openapi / util / io / FileUtil.toSystemIndependentName의 @NotNull 매개 변수 'aFileName'에 대한 인수는 null이 아니어야합니다.

레이아웃에 내 customView에 대한 <merge>가 포함되어 있으면 테스트가 실패합니다.

Codility Peaks 문제에서 실패한 테스트 사례 하나에 대한 설명이 필요합니다.

Codility Peaks 문제에서 실패한 테스트 사례 하나에 대한 설명이 필요합니다.

실패한 어설션: 부울 표현식은 플러터의 범위 모델에서 null이 아니어야 합니다.

OpenCV 3.1.0 어설 션이 cv :: HOGDescriptor :: setSVMDetector에서 checkDetectorSize에 실패했습니다.

Python pytest mock이 함수 호출 어설 션에 대해 "assert None"으로 실패합니다.

Windows 8.1에서 장치 드라이버 설치 실패에 대한 로그를 어떻게 확인합니까?

OpenCV 오류 : 293 행의 undistort.cpp에서 어설 션이 실패했습니다.

Python에서 opencv를 사용할 때 어설 션이 실패했습니다.

일부 Pixal 값에서 OpenCV 오류 어설 션이 실패했습니다.

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관