[PyOpenCL] Ghosting with bilinear Interpolation of OpenCV-Images
Giancarlo Colasante
giancarlo.forum at gmail.com
Tue Nov 22 05:30:03 PST 2011
Hello,
maybe there are a mistake in Tharang's code,
i test with an example (chapter 20) from:
http://code.google.com/p/opencl-book-samples/
and it's working.
i have "encapsulated" the way to create a context and a
OpenCL program oriented to image processing in one function
def ContextProgram(fileName):
where "fileName" is a file with an OpenCL program
the result is:
http://tinypic.com/r/derx8k/5
http://i43.tinypic.com/derx8k.jpg
Regards.
______________________________
def ContextProgram(fileName):
# Create an OpenCL context on first available platform
platforms = cl.get_platforms();
if len(platforms) == 0:
print 'Failed to find any OpenCL platforms.'
return None
# Next, create an OpenCL context on the first platform.
# Attempt to create a GPU-based context, and if that fails,
# try to create a CPU-based context.
devices = platforms[0].get_devices(cl.device_type.GPU)
if len(devices) == 0:
print 'Could not find GPU device, trying CPU...'
devices = platforms[0].get_devices(cl.device_type.CPU)
if len(devices) == 0:
print 'Could not find OpenCL GPU or CPU device.'
return None
device = devices[0] # first device
# Make sure the device supports images, otherwise exit
if not device.get_info(cl.device_info.IMAGE_SUPPORT):
print 'OpenCL device does not support images.'
return None
# Create a context on the first device
context = cl.Context([device])
# Create a command-queue on the first device available
Queue = cl.CommandQueue(context, device)
# Create an OpenCL program from the kernel source file
kernelFile = open(fileName, 'r')
kernelStr = kernelFile.read()
# Load the program source
program = cl.Program(context, kernelStr)
# Build the program and check for errors
program.build(devices=[device])
return context, Queue, program
______________________________
More information about the PyOpenCL
mailing list