2012-02-16 2 views
1

내가 OpenCV의의 GpuMat를 사용하려고 해요하지만 어설 션 오류를 받고 있어요, 내 코드는 다음과 같다OpenCV의 GpuMat 사용

#include "opencv2/opencv.hpp" 
#include "opencv2/imgproc/imgproc.hpp" 
#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/gpu/gpu.hpp" 

// ... 

using namespace cv; 
using namespace cv::gpu; 

int main() 
{ 
    string baboon = "baboon.jpg"; 
    try 
    { 
     DeviceInfo info = getDevice(); 
     cout << info.name() << endl; 

     GpuMat src; 

     src = cv::imread(baboon, 1); 
    } 
    catch (const cv::Exception* ex) 
    { 
     cout << "Error: " << ex->what() << endl; 
    } 
} 

출력은 다음과 같습니다 방법에

GeForce GTX 550 Ti 
OpenCV Error: Assertion failed (!m.empty()) in unknown function, file ($PATH_TO_OPENCV)\opencv\modules\gpu\src\gpumat.cpp, line 411 

어떤 아이디어 이 문제를 해결하려면?

답변

6

솔루션은 다음과 같습니다

Mat src; 

src = cv::imread("..."); 

GpuMat dst; 

dst.upload(src); 
+0

그것이 단지 (SRC) dst.upload 하여서는 아니된다; ? –

+0

예,'dst.upload (src)'여야합니다. –

3

나는 imread에 대한 호출이 null을 반환하고 Gpu 행렬이 비어 있거나 정의되지 않았기 때문에 GpuMat 생성자에 어설 션을 발생시킵니다.

이것은 파일 누락, 부적절한 사용 권한 또는 지원되지 않거나 유효하지 않은 형식으로 인해 이미지를 읽을 수 없음을 의미합니다.

baboon.jpg이 프로그램을 실행중인 디렉토리와 동일한 디렉토리에 있는지 확인하고 이미지 파일이 올바른 권한을 갖고 손상되지 않았는지 확인하십시오.

+0

당신이 옳았; D 들으 – JohnnyAce