def test_nlm3_thresh(): from imgtools import test_images, calcPSNR, read3dTiff dev = OCLDevice(useDevice=1) # data = test_images.blobs64() data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif") np.random.seed(0) data = 100.*data/np.amax(data) y = np.maximum(0,data + np.random.normal(0,20,data.shape)) y = y.astype(np.float32) y = y.astype(np.uint16) t = time() out = nlm3_thresh(dev,y,2,3,30,60) print time()-t print calcPSNR(data,out) # sigs = np.linspace(3,70,30) # bests = [] # for s0 in np.linspace(2,20,10): # y = data + np.random.normal(0,s0,data.shape) # y = y.astype(np.float32) # sigs = s0*np.linspace(.1,5 ,20) # ind=np.argmax([calcPSNR(data,nlm3_fast(dev,y,2,3,s)) for s in sigs]) # print s0,sigs[ind] # bests.append([s0,sigs[ind]]) return out
def bm4d(data,sigma): tmpName = utils.absPath("0123456789_TMP.tiff") tmpName2 = utils.absPath("0123456789_OUT_TMP.tiff") imgtools.write3dTiff(data,tmpName) subprocess.call([utils.absPath("cxx_code/bm4d/bm4d.sh"),tmpName,tmpName2,str(sigma)], stdout=subprocess.PIPE) out = imgtools.read3dTiff(tmpName2) # os.remove(tmpName) # os.remove(tmpName2) return out
def test_bm4d(): from imgtools import test_images, calcPSNR, read3dTiff dev = OCLDevice() data = test_images.blobs64() data = read3dTiff("/Users/mweigert/Data/synthetics/filaments64.tif") data = 100.*data/np.amax(data) y = data + np.random.normal(0,20,data.shape) y = y.astype(np.float32) out = bm4d(y,20) print calcPSNR(data,out) sigs = np.linspace(3,70,30) return data,out
def test_tv3_gpu(): from imgtools import test_images, calcPSNR, read3dTiff dev = OCLDevice(useDevice=1) data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif") np.random.seed(0) data = 100.*data/np.amax(data) y = np.maximum(0,data + np.random.normal(0,0.2*np.amax(data),data.shape)) y = y.astype(np.float32) t = time() out = tv3_gpu(dev,y,.4*np.amax(data)) print "time:", time()-t print "PSNR: ",utils.calcPSNR(data,out) return data,y,out
def test_real(): import imgtools import time d = imgtools.read3dTiff("/Users/mweigert/Data/sqeazy_corpus/Norden_GFP-LAP_4-1.tif") rend = VolumeRenderer((600,600)) rend.set_modelView(mat4_rotation(.5,0,1.,0)) # rend.set_box_boundaries(.3*np.array([-1,1,-1,1,-1,1])) t1 = time.time() rend.set_data(d, autoConvert = True) rend.set_units([1.,1.,6.]) t2 = time.time() out = rend.render(maxVal = 200.) print "time to set data :\t %.2f ms"%(1000*(t2-t1)) print "time to render:\t %.2f ms"%(1000*(time.time()-t2)) return d, rend, out