gpt4 book ai didi

opencv - 如何在CUDA文件(.cu)中包含和使用OpenCv3.1.0库?

转载 作者:行者123 更新时间:2023-12-02 16:55:40 25 4
gpt4 key购买 nike

我试图将自己的内核实现为中值过滤器,例如以下伪代码:

//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: cannot open include file:'opencv2/opencv.hpp' : No such file or directory



我知道.cu文件可以用nvcc编译,而不能编译OpenCV头文件。

1)如何将OpenCV3.1.0库包含到.cu文件中?

最佳答案

您无需在.cu文件中包含OpenCV。您需要使用原始指针和基本数据类型作为参数的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;
}

中值过滤器
cudaMedianCaller (uchar3* d_inputMat, uchar* d_kernelMat);

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

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

}

关于opencv - 如何在CUDA文件(.cu)中包含和使用OpenCv3.1.0库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com