2011-08-06 3 views
5

나는 반대로하는 방법을 알고 있습니다. CvMat에서 업로드를 사용하여 GpuMat을 얻으십시오. 그러나 CvMatGpuMat에서 필요합니다. 사용할 수있는 방법이 있습니까?OpenCV에서 GpuMat를 CvMat로 변환하는 방법?

+0

코드가 도움이 되었습니까? 그렇지 않다면, 제가 그 문제를 바로 잡을 수 있음을 알려주십시오. 그랬다면, 그것을 받아주세요 ... – jmartel

+0

나는 아직도 시도하고있다. 문제가 다른 gpu 코드와 관련이 있는지 알지 못한다. 실시간 GPU 서프가 곧 평가 될 것이다. –

답변

18

명시 적 변환 : 매트 -> GPUMat

Mat myMat; 
GpuMat myGpuMat; 
myGpuMat.upload(myMat); //Via a member function 
//Or 
GpuMat myGpuMat(myMat) //Via a constructor 
//Use myGpuMat here... 

암시 적 변환 : -> 매트

GpuMat myGpuMat; 
Mat myMat = myGpyMat; 
//Use myMat here... 

가 도움이 희망, 줄리앙,

+0

너무 나쁜 원작자는 받아들이지 않을 것이다. 명확히 나를 도왔다. –

+0

이것은 작동하는 것 같습니다 (원래 오류가 사라졌습니다)하지만이 현혹 할 수없는 오류가 발생합니다 : 1> cuda beginner.obj : 오류 LNK2019 : 해결되지 않은 외부 기호 "double __cdecl cv :: gpu :: threshold (class cv :: gpu :: GpuMat const &, class cv :: gpu :: GpuMat &, double, double, int, class cv :: gpu :: Stream &) "(임계 값 @ gpu @ cv @@ YANAEBVGpuMat @ 12 @ AEAV312 @ NNHAEAVStream @ 12 @ @ Z) function "int __cdecl _tmain (void)"(? _tmain @@ YAHXZ) –

+0

@johnktejik, 자신이 opencv의 초심자 였지만 GPU를 지원하는 opencv 라이브러리를 빌드 했습니까? – MuneshSingh

1

윈 7에서 GpuMat , 64 비트, openCV 2.4

GpuMat ->Mat :

cv::gpu::GpuMat dst; 
cv::Mat tran(dst); 

당신이 dstGpuMat입니다 볼 수 있듯이, 그리고 tranMat입니다.

+0

나는 이것을 얻는다 : cuda beginner.cpp (15) : 오류 C3861 : 'tran': 식별자를 찾을 수 없다. –

+0

이것은 나를 위해 일했다! – alap

관련 문제