2011-08-06 10 views
5

Tersi nasıl yapılacağını biliyorum, GpuMat'u CvMat aracılığıyla yükle, ama GpuMat'a ihtiyacım var, bunun için kullanılabilecek herhangi bir yöntem var mı?GpuMat - CvMat OpenCV'de dönüştürme?

+0

Kod size yardımcı oldu mu? değilse, lütfen bunu düzeltebileceğimi bildirin. Eğer yaptıysa, lütfen kabul edin ... – jmartel

+0

Hala deniyorum, bu ya da diğer gpu kodları ile ilgili bir sorun olup olmadığını bilmiyorum, gerçek zamanlı GPU SURF üzerinde çalışacağım yakında puan verecektir –

cevap

18

açık dönüşüm: Mat -> GPUMat

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

örtük dönüştürme: -> Mat

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

taslağın yardımcı Umut, Julien,

+0

Çok kötü bir orijinal yazar kabul etmez, bu kesinlikle bana yardım etti. –

+0

Bu işe yaramış gibi görünüyor (özgün hata gitti) ancak bu kararsızlığa yol açar: 1> cuda beginner.obj: hata LNK2019: çözümlenmemiş harici sembol "double __cdecl cv :: gpu :: eşik (sınıf cv :: gpu :: GpuMat const &, class cv :: gpu :: GpuMat &, çift, çift, int, sınıf cv :: gpu :: Akış &) "(? Eşiği @ gpu @ cv @@ YANAEBVGpuMat @ 12 @ AEAV312 @ NNHAEAVStream @ 12 @ @Z) işlevinde "int __cdecl _tmain (void)" (? _tmain @@ YAHXZ) –

+0

@johnktejik, kendimi opencv'de bir acemede başvurulan, ancak GPU desteğiyle opencv kitaplığınızı oluşturdunuz mu? – MuneshSingh

1

kazanmak 7'de GpuMat , 64 bit, openCV 2.4

GpuMat ->Mat:

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

Eğer dstGpuMat olduğunu görebileceğiniz gibi, ve tranMat olduğunu.

+0

Bunu elde ediyorum: cuda beginner.cpp (15): hata C3861: 'tran': tanımlayıcı bulunamadı –

+0

Bu benim için çalıştı! – alap