2
我想知道如何修改gpu::GpuMat
。事實上,我想知道是否有可能使用gpu::GpuMat
,如cv::Mat
。在OpenCV C++中使用gpu :: GpuMat
我願做這樣的事情:
cv::namedWindow("Result");
cv::Mat src_host = cv::imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv::gpu::GpuMat dst, src;
src.upload(src_host);
for (unsigned int y = 0; y < src.rows; y++){
for (unsigned int x = 0; x < src.cols; x++){
src.at<uchar>(y,x) = 0;
}
}
cv::Mat result_host;
dst.download(result_host);
cv::imshow("Result", result_host);
cv::waitKey();
}
catch(const cv::Exception& ex)
{
std::cout << "Error: " << ex.what() << std::endl;
}
return 0;
這似乎是不可能的。有人知道另一種方法嗎? 每次我想做點什麼時,我是否必須將我的gpu::GpuMat
下載到cv::Mat
? 在此先感謝
編輯:我大概可以使用gpu::PtrStepSz
(一定要考...)
我真的不知道這是一個CUDA編程問題。也許你可以從問題中刪除CUDA標籤? – talonmies
我想使用gpu :: Mat,它是由Opencv通過Cuda提供的... – Poko
是的,但是在您的代碼或問題中沒有任何事情與CUDA有關,只有OpenCV類切入指代CUDA的抽象某處。通過相同的邏輯,你應該用「windows」或「linux」來標記你的問題,因爲你的代碼在操作系統的頂部運行OpenCV以及...... – talonmies