허용되는 유형과 함께 사용하는 매트 유형의 경우 일부 할당을 시도하거나 스트리밍 등을 시도 할 때 아래와 같은 오류가 발생합니다. MSVC++ 2010 익스프레스 컴파일러에서 발생합니다 gnu g ++ 컴파일러에서는 발생하지 않습니다.cv :: Mat 데이터에 액세스하기위한 OpenCV 오류
예 결함 사용 :
Mat M = Mat::zeros(image.size(), DataType<int>::type );
std::cout << M.at<int>(0,0) << std::endl; // error
// OR
int x = M.at<int>(0,0); // error
두 개의 오류가 함께 해고 :
Unhandled exception at <some hex adress> in test.exe:Microsoft C++ exception: cv:xception at memory location <some hex adress>
및 콘솔 창
OpenCV Error: Assertion failed ... \mat.hpp, line 537
어떤 제안에 팝업 창에서?
다음 작업을 수행했지만 작동하지 않습니다 ... Mat M = Mat :: zeros (image.size(), CV_16S); std :: cout << M.at (0,0) << std :: endl; –
Zoran
맞아요.하지만 물건을 short 대신 int로 호출하고 있습니다. 컴파일러에 따라 완벽하게 해결 될 수도 있고 그렇지 않을 수도 있습니다. 매트릭스 참조에 암시 적 캐스트가 있다고 가정하지 마십시오 – Chris
고맙습니다. 명시 적 형변환이 핵심입니다. 나는 내 문제를 완전히 해결하지 못했다. 매트의 값을 매트에 지정하려면 어떻게해야합니까? M1.at (0,0) = M2.at (i, j) 모두 CV_32F이거나 M2가 CV_32S라고 가정합니다. –
Zoran