2016-07-04 13 views
-1

私は、この擬似コードのようなメディアンフィルタに自分のカーネルを実装してみました:OpenCv3.1.0ライブラリをCUDAファイル(.cu)に組み込み、使用する方法は?

//main.cpp 
#include "opencv2/opencv.hpp" 
cv::Mat inputMat = cv::imread() 
cudaMedianCaller (inputMat, kernelMat) 

//medianFilter.h 
#include "opencv2/opencv.hpp" 
cudaMedianCaller (const cv::Mat& inputMat, cv::Mat& kernelMat); 

//medianFilter.cu 
cudaMedianCaller (const cv::Mat& inputMat, cv::Mat& kernelMat) 
{ 
    kernelMedianFilter<<< , >>> (uchar3* d_inputMat, uchar* d_kernelMat) 
} 

__global__ void kernelMedianFilter (uchar3* d_inputMat, uchar* d_kernelMat) 
{ 

} 

私はコンパイルエラーを取得:

C1083: 'opencv2/opencv.hpp':開くことができないファイルを含めますそのようなファイルやディレクトリ

んが、私は.cuファイルがNVCCでコンパイルすることを知っていないとOpenCVのヘッダfilessをコンパイルすることができませんでした。

1)どうやって.cuファイルにOpenCV3.1.0ライブラリを含めることができますか?

答えて

2

OpenCVを.cuファイルに含める必要はありません。 Rawポインタと基本データ型をパラメータとしてCaller APIが必要です。

main.cppに

#include "opencv2/opencv.hpp" 
#include "medianFilter.h" 

int main() { 
    cv::Mat inputMat = cv::imread(); 
    ..... 
    cudaMedianCaller (d_inputMat, d_kernelMat); 
    ..... 
    return 0; 
} 

medianFilter.h

cudaMedianCaller (uchar3* d_inputMat, uchar* d_kernelMat); 

medianFilter.cu

cudaMedianCaller (uchar3* d_inputMat, uchar* d_kernelMat) 
{ 
    kernelMedianFilter<<< , >>> (uchar3* d_inputMat, uchar* d_kernelMat) 
} 

__global__ void kernelMedianFilter (uchar3* d_inputMat, uchar* _kernelMat) 
{ 

} 
+0

どうもありがとうございました。あなたのファイルを自分のコードでテストし、あなたに報告します。 –

関連する問題