Setting pixel values in Nvidia NPP ImageCPU objects?
Posted
by
solvingPuzzles
on Stack Overflow
See other posts from Stack Overflow
or by solvingPuzzles
Published on 2012-09-28T04:32:36Z
Indexed on
2012/10/20
5:03 UTC
Read the original article
Hit count: 162
In the Nvidia Performance Primitives (NPP) image processing examples in the CUDA SDK distribution, images are typically stored on the CPU as ImageCPU
objects, and images are stored on the GPU as ImageNPP
objects.
boxFilterNPP.cpp is an example from the CUDA SDK that uses these ImageCPU
and ImageNPP
objects.
When using a filter (convolution) function like nppiFilter
, it makes sense to define a filter as an ImageCPU
object. However, I see no clear way setting the values of an ImageCPU
object.
npp::ImageCPU_32f_C1 hostKernel(3,3); //allocate space for 3x3 convolution kernel
//want to set hostKernel to [-1 0 1; -1 0 1; -1 0 1]
hostKernel[0][0] = -1; //this doesn't compile
hostKernel(0,0) = -1; //this doesn't compile
hostKernel.at(0,0) = -1; //this doesn't compile
How can I manually put values into an ImageCPU
object?
Notes:
- I didn't actually use
nppiFilter
in the code snippet; I'm just mentioningnppiFilter
as a motivating example for writing values into anImageCPU
object. - The boxFilterNPP.cpp example doesn't involve writing directly to an
ImageCPU
object, becausenppiFilterBox
is a special case ofnppiFilter
that uses a built-in gaussian smoothing filter (probably something like [1 1 1; 1 1 1; 1 1 1]).
© Stack Overflow or respective owner