2013-05-21 2 views
1

이미 생성 된 매트를 페이지 잠금하려고합니다. 런타임시OpenCV 2.4.4 CUDA : registerPageLocked failed

... 
Mat cpuGray; 
GpuMat gpuGray; 
cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY); 
registerPageLocked(cpuGray); 
gpuStream.enqueueUpload(cpuGray, gpuGray); 
... 

이것이 실패 : 다음 예제 코드를 고려

OpenCV Error: Gpu API call (invalid argument) in registerPageLocked, file ../gpu/src/matrix_operations.cpp, line 194 
terminate called after throwing an instance of 'cv::Exception' 
    what(): ../gpu/src/matrix_operations.cpp:194: error: (-217) invalid argument in function registerPageLocked 
Aborted 

사람이 내가이 오류가 발생하는 일을하고 무엇을 알고 있나요? 미리 감사드립니다.

답변

1

고객님의 cpuGray은 빈 행렬 일 수 있습니다. registerPageLocked(cpuGray) 함수는 cpuGray에 대해 페이지 잠금이 필요한 메모리 양을 알아야합니다. cpuGray이 빈 행렬이 아닌지 확인하십시오. cpuGray는 너무 cpuColor가 비어 있지 않은지 확인

cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY); 

에 초기화됩니다.

+0

감사합니다. Alex,하지만 저도 그렇게 생각했습니다. 이제는 registerPageLocked를 호출하기 전에 gpuGray의 크기와 포인터를 조사합니다. – user2407197

+0

@ user2407197 물론, 작동 시키셨습니까? – Alexey

+0

아니요, 입력 매트가 유효하고 비어 있지 않아도 여전히 동일한 오류로 실패합니다. – user2407197

관련 문제