CUDA NPP库支持使用nppiFilter_8u_C1R命令过滤图像,但不断收到错误。启动并运行boxFilterNPP示例代码我没有任何问题。CUDA,NPP滤镜
eStatusNPP = nppiFilterBox_8u_C1R(oDeviceSrc.data(), oDeviceSrc.pitch(),
oDeviceDst.data(), oDeviceDst.pitch(),
oSizeROI, oMaskSize, oAnchor);
但是,如果我改变它使用nppiFilter_8u_C1R代替,eStatusNPP返回错误-24(NPP_TEXTURE_BIND_ERROR)。下面的代码是我对原始boxFilterNPP示例所做的更改。
NppiSize oMaskSize = {5,5};
npp::ImageCPU_32s_C1 hostKernel(5,5);
for(int x = 0 ; x < 5; x++){
for(int y = 0 ; y < 5; y++){
hostKernel.pixels(x,y)[0].x = 1;
}
}
npp::ImageNPP_32s_C1 pKernel(hostKernel);
Npp32s nDivisor = 1;
eStatusNPP = nppiFilter_8u_C1R(oDeviceSrc.data(), oDeviceSrc.pitch(),
oDeviceDst.data(), oDeviceDst.pitch(),
oSizeROI,
pKernel.data(),
oMaskSize, oAnchor,
nDivisor);
这已经尝试了CUDA 4.2和5.0,与相同的结果。
的代码与预期结果运行时oMaskSize = {1,1}
其CUDA你使用的是哪个版本? – sgarizvi
版本4.2,V0.2.1221 – Steenstrup