def bilateral3(data, size_filter, sigma_p, sigma_x=10.): """bilateral filter """ dtype = data.dtype.type dtypes_kernels = { np.float32: "bilat3_float", } if not dtype in dtypes_kernels.keys(): logger.info("data type %s not supported yet (%s), casting to float:" % (dtype, dtypes_kernels.keys())) data = data.astype(np.float32) dtype = data.dtype.type img = OCLImage.from_array(data) res = OCLArray.empty_like(data) prog = OCLProgram(abspath("kernels/bilateral3.cl")) print img.shape prog.run_kernel(dtypes_kernels[dtype], img.shape, None, img, res.data, np.int32(img.shape[0]), np.int32(img.shape[1]), np.int32(size_filter), np.float32(sigma_x), np.float32(sigma_p)) return res.get()
def bilateral3(data, size_filter, sigma_p, sigma_x = 10.): """bilateral filter """ dtype = data.dtype.type dtypes_kernels = {np.float32:"bilat3_float",} if not dtype in dtypes_kernels.keys(): logger.info("data type %s not supported yet (%s), casting to float:"%(dtype,dtypes_kernels.keys())) data = data.astype(np.float32) dtype = data.dtype.type img = OCLImage.from_array(data) res = OCLArray.empty_like(data) prog = OCLProgram(abspath("kernels/bilateral3.cl")) print img.shape prog.run_kernel(dtypes_kernels[dtype], img.shape,None, img,res.data, np.int32(img.shape[0]),np.int32(img.shape[1]), np.int32(size_filter),np.float32(sigma_x),np.float32(sigma_p)) return res.get()
def scale(data, scale=(1., 1., 1.), interp="linear"): """returns a interpolated, scaled version of data scale = (scale_z,scale_y,scale_x) or scale = scale_all interp = "linear" | "nearest" """ bop = {"linear": "", "nearest": "-D USENEAREST"} if not interp in bop.keys(): raise KeyError("interp = '%s' not defined ,valid: %s" % (interp, bop.keys())) if not isinstance(scale, (tuple, list, np.ndarray)): scale = (scale, ) * 3 if len(scale) != 3: raise ValueError("scale = %s misformed" % scale) d_im = OCLImage.from_array(data) nshape = np.array(data.shape) * np.array(scale) nshape = tuple(nshape.astype(np.int)) res_g = OCLArray.empty(nshape, np.float32) prog = OCLProgram(abspath("kernels/scale.cl"), build_options=[bop[interp]]) prog.run_kernel("scale", res_g.shape[::-1], None, d_im, res_g.data) return res_g.get()
def nlm3(data, sigma, size_filter=2, size_search=3): """for noise level of sigma_0, choose sigma = 1.5*sigma_0 """ prog = OCLProgram(abspath("kernels/nlm3.cl"), build_options="-D FS=%i -D BS=%i" % (size_filter, size_search)) img = OCLImage.from_array(data) distImg = OCLImage.empty_like(data) distImg = OCLImage.empty_like(data) tmpImg = OCLImage.empty_like(data) tmpImg2 = OCLImage.empty_like(data) accBuf = OCLArray.zeros(data.shape, np.float32) weightBuf = OCLArray.zeros(data.shape, np.float32) for dx in range(size_search + 1): for dy in range(-size_search, size_search + 1): for dz in range(-size_search, size_search + 1): prog.run_kernel("dist", img.shape, None, img, tmpImg, np.int32(dx), np.int32(dy), np.int32(dz)) prog.run_kernel("convolve", img.shape, None, tmpImg, tmpImg2, np.int32(1)) prog.run_kernel("convolve", img.shape, None, tmpImg2, tmpImg, np.int32(2)) prog.run_kernel("convolve", img.shape, None, tmpImg, distImg, np.int32(4)) prog.run_kernel("computePlus", img.shape, None, img, distImg, accBuf.data, weightBuf.data, np.int32(img.shape[0]), np.int32(img.shape[1]), np.int32(img.shape[2]), np.int32(dx), np.int32(dy), np.int32(dz), np.float32(sigma)) if any([dx, dy, dz]): prog.run_kernel("computeMinus", img.shape, None, img, distImg, accBuf.data, weightBuf.data, np.int32(img.shape[0]), np.int32(img.shape[1]), np.int32(img.shape[2]), np.int32(dx), np.int32(dy), np.float32(sigma)) acc = accBuf.get() weights = weightBuf.get() return acc / weights
def _convolve_sep2_gpu(data_g, hx_g, hy_g, res_g = None, dev = None): assert_bufs_type(np.float32,data_g,hx_g,hy_g) prog = OCLProgram(abspath("kernels/convolve_sep.cl")) Ny,Nx = hy_g.shape[0],hx_g.shape[0] tmp_g = OCLArray.empty_like(data_g) if res_g is None: res_g = OCLArray.empty_like(data_g) prog.run_kernel("conv_sep2_x",data_g.shape[::-1],None,data_g.data,hx_g.data,tmp_g.data,np.int32(Nx)) prog.run_kernel("conv_sep2_y",data_g.shape[::-1],None,tmp_g.data,hy_g.data,res_g.data,np.int32(Ny)) return res_g
def _convolve_buf(data_g, h_g , res_g = None): """ buffer variant """ assert_bufs_type(np.float32,data_g,h_g) prog = OCLProgram(abspath("kernels/convolve.cl")) if res_g is None: res_g = OCLArray.empty(data_g.shape,dtype=np.float32) Nhs = [np.int32(n) for n in h_g.shape] kernel_name = "convolve%sd_buf"%(len(data_g.shape)) prog.run_kernel(kernel_name,data_g.shape[::-1],None, data_g.data,h_g.data,res_g.data, *Nhs) return res_g
def nlm2(data,sigma, size_filter = 2, size_search = 3): """for noise level of sigma_0, choose sigma = 1.5*sigma_0 """ prog = OCLProgram(abspath("kernels/nlm2.cl"), build_options="-D FS=%i -D BS=%i"%(size_filter,size_search)) img = OCLImage.from_array(data) distImg = OCLImage.empty_like(data) distImg = OCLImage.empty_like(data) tmpImg = OCLImage.empty_like(data) tmpImg2 = OCLImage.empty_like(data) accBuf = OCLArray.zeros(data.shape,np.float32) weightBuf = OCLArray.zeros(data.shape,np.float32) for dx in range(size_search+1): for dy in range(-size_search,size_search+1): prog.run_kernel("dist",img.shape,None, img,tmpImg,np.int32(dx),np.int32(dy)) prog.run_kernel("convolve",img.shape,None, tmpImg,tmpImg2,np.int32(1)) prog.run_kernel("convolve",img.shape,None, tmpImg2,distImg,np.int32(2)) prog.run_kernel("computePlus",img.shape,None, img,distImg,accBuf.data,weightBuf.data, np.int32(img.shape[0]),np.int32(img.shape[1]), np.int32(dx),np.int32(dy),np.float32(sigma)) if any([dx,dy]): prog.run_kernel("computeMinus",img.shape,None, img,distImg,accBuf.data,weightBuf.data, np.int32(img.shape[0]),np.int32(img.shape[1]), np.int32(dx),np.int32(dy),np.float32(sigma)) acc = accBuf.get() weights = weightBuf.get() return acc/weights
def affine(data, mat = np.identity(4), interp = "linear"): """affine transform data with matrix mat """ bop = {"linear":"","nearest":"-D USENEAREST"} if not interp in bop.keys(): raise KeyError("interp = '%s' not defined ,valid: %s"%(interp,bop.keys())) d_im = OCLImage.from_array(data) res_g = OCLArray.empty(data.shape,np.float32) mat_g = OCLArray.from_array(np.linalg.inv(mat).astype(np.float32,copy=False)) prog = OCLProgram(abspath("kernels/transformations.cl") , build_options=[bop[interp]]) prog.run_kernel("affine", data.shape[::-1],None, d_im,res_g.data,mat_g.data) return res_g.get()
def affine(data, mat=np.identity(4), interp="linear"): """affine transform data with matrix mat """ bop = {"linear": "", "nearest": "-D USENEAREST"} if not interp in bop.keys(): raise KeyError("interp = '%s' not defined ,valid: %s" % (interp, bop.keys())) d_im = OCLImage.from_array(data) res_g = OCLArray.empty(data.shape, np.float32) mat_g = OCLArray.from_array( np.linalg.inv(mat).astype(np.float32, copy=False)) prog = OCLProgram(abspath("kernels/transformations.cl"), build_options=[bop[interp]]) prog.run_kernel("affine", data.shape[::-1], None, d_im, res_g.data, mat_g.data) return res_g.get()
def _convolve3_old(data,h, dev = None): """convolves 3d data with kernel h on the GPU Device dev boundary conditions are clamping to edge. h is converted to float32 if dev == None the default one is used """ if dev is None: dev = get_device() if dev is None: raise ValueError("no OpenCLDevice found...") dtype = data.dtype.type dtypes_options = {np.float32:"", np.uint16:"-D SHORTTYPE"} if not dtype in dtypes_options.keys(): raise TypeError("data type %s not supported yet, please convert to:"%dtype,dtypes_options.keys()) prog = OCLProgram(abspath("kernels/convolve3.cl"), build_options = dtypes_options[dtype]) hbuf = OCLArray.from_array(h.astype(np.float32)) img = OCLImage.from_array(data) res = OCLArray.empty(data.shape,dtype=np.float32) Ns = [np.int32(n) for n in data.shape+h.shape] prog.run_kernel("convolve3d",img.shape,None, img,hbuf.data,res.data, *Ns) return res.get()
def scale(data, scale = (1.,1.,1.), interp = "linear"): """returns a interpolated, scaled version of data scale = (scale_z,scale_y,scale_x) or scale = scale_all interp = "linear" | "nearest" """ bop = {"linear":"","nearest":"-D USENEAREST"} if not interp in bop.keys(): raise KeyError("interp = '%s' not defined ,valid: %s"%(interp,bop.keys())) if not isinstance(scale,(tuple, list, np.ndarray)): scale = (scale,)*3 if len(scale) != 3: raise ValueError("scale = %s misformed"%scale) d_im = OCLImage.from_array(data) nshape = np.array(data.shape)*np.array(scale) nshape = tuple(nshape.astype(np.int)) res_g = OCLArray.empty(nshape,np.float32) prog = OCLProgram(abspath("kernels/scale.cl"), build_options=[bop[interp]]) prog.run_kernel("scale", res_g.shape[::-1],None, d_im,res_g.data) return res_g.get()
from abspath import abspath DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', '*****@*****.**'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': abspath('database.db'), # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } } LOGIN_REDIRECT_URL = '/' FLASH_IGNORE_MEDIA = True FLASH_STORAGE = 'session' FLASH_CODEC = 'json' # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
from django.conf.urls.defaults import * from django.shortcuts import redirect from abspath import abspath # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^$', lambda req:redirect('/beanstalk/')), (r'^beanstalk/', include('beanstalk.urls')), (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name':'accounts/login.html'}), (r'^accounts/logout/$', 'django.contrib.auth.views.logout_then_login'), (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': abspath('media')}), # Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)), )
# Django settings for jack project. from abspath import abspath DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', '*****@*****.**'), ) MANAGERS = ADMINS DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = abspath( 'database.db') # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. BEANSTALK_HOST = 'localhost' BEANSTALK_PORT = 11300 LOGIN_REDIRECT_URL = '/' FLASH_IGNORE_MEDIA = True FLASH_STORAGE = 'session' FLASH_CODEC = 'json' # Local time zone for this installation. Choices can be found here:
from django.conf.urls.defaults import * from django.shortcuts import redirect from abspath import abspath # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns( '', (r'^$', lambda req: redirect('/beanstalk/')), (r'^beanstalk/', include('beanstalk.urls')), (r'^accounts/login/$', 'django.contrib.auth.views.login', { 'template_name': 'accounts/login.html' }), (r'^accounts/logout/$', 'django.contrib.auth.views.logout_then_login'), (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': abspath('media') }), # Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)), )