In [1]:
import numpy as np
import ndio.remote.neurodata as nd
from datetime import datetime
import ndio
print ndio.version
oo = nd()
token = 'bock11'
channel = 'image'
startTime = datetime.now()
In [2]:
# Get image properties
res = 7 #6 might be good
slice_stride = 11 # TODO: this is empirically determined right now - 6 might be good
image_size = oo.get_proj_info(token)['dataset']['imagesize'][str(res)]
image_offset = oo.get_proj_info(token)['dataset']['offset'][str(res)]
image_res = oo.get_proj_info(token)['dataset']['voxelres'][str(res)]
print image_size
print image_offset
total_voxels = (image_size[0]-image_offset[0])*(image_size[1]-image_offset[1])*(image_size[2]-image_offset[2])
#image_res in z dim should be 1
pixel_dim = image_res[0]*0.004*image_res[1]*0.004*.045
total_volume = total_voxels*pixel_dim
print 'total volume: ' + str(round(total_volume)) + ' um^3'
# Downsample exploration
print image_res[0]*0.004
print image_res[1]*0.004
print 0.045*slice_stride
In [3]:
imout = np.zeros([image_size[0]-image_offset[0],image_size[1]-image_offset[1],
len(range(image_offset[2],image_size[2],slice_stride))],dtype='uint8')
c = 0
for x in range(image_offset[2],image_size[2],slice_stride):
print str(x).zfill(4),
temp = oo.get_volume(token, channel, image_offset[0], image_size[0], image_offset[1],
image_size[1], x, x + 1, resolution=res)
imout[:,:,c] = temp.cutout[:,:,0]
c += 1
In [4]:
import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.imshow(imout[:,:,10].T, cmap='gray')
plt.axis("off")
plt.savefig('testbock.jpg', dpi = 600)
In [5]:
import ndio.convert.nifti as cnifti
print np.shape(imout)
cnifti.export_nifti('testout.nii',imout)
print str(datetime.now()-startTime)
# mana annotation protocol: http://docs.neurodata.io/nddocs/ndparse/mana.html