Skip to content

Instantly share code, notes, and snippets.

@VolkerH
Created November 1, 2018 04:28
Show Gist options
  • Save VolkerH/1a12aa736c14a0e9687a071f45f75507 to your computer and use it in GitHub Desktop.
Save VolkerH/1a12aa736c14a0e9687a071f45f75507 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from transform_helpers import *\n",
"# %gui qt5\n",
"# from spimagine import volshow"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# Z, Y, X\n",
"test_vol = np.zeros((200,400,800), dtype = np.uint16)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# put origin in the centre\n",
"\n",
"imprint_coordinate_system(test_vol, ( 100, 200, 400))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"plot_all(get_projections(test_vol))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<spimagine.gui.mainwidget.MainWidget at 0x1505faca798>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# volshow(test_vol)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"import gputools\n",
"import scipy.ndimage"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 0., 0., -100.],\n",
" [ 0., 1., 0., 0.],\n",
" [ 0., 0., 1., 0.],\n",
" [ 0., 0., 0., 1.]])"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"move_z = np.eye(4)\n",
"move_z[0,3] = -100\n",
"move_z"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"gpu_trans_mz = gputools.affine(test_vol, move_z)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"scipy_trans_mz = scipy.ndimage.affine_transform(test_vol, move_z)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# scipy actually expects the affine transform from output to input, i.e. the inverse"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"scipy_trans_mz_inv = scipy.ndimage.affine_transform(test_vol, scipy.linalg.inv(move_z))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_all(get_projections(gpu_trans_mz))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_all(get_projections(scipy_trans_mz))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_all(get_projections(scipy_trans_mz_inv))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 0., 0., 0.],\n",
" [ 0., 1., 0., -200.],\n",
" [ 0., 0., 1., 0.],\n",
" [ 0., 0., 0., 1.]])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"move_y = np.eye(4)\n",
"move_y[1,3] = -200\n",
"move_y"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"gpu_trans_my = scipy.ndimage.affine_transform(test_vol, move_y)\n",
"scipy_trans_my_inv = scipy.ndimage.affine_transform(test_vol, scipy.linalg.inv(move_y))\n",
"plot_all(get_projections(gpu_trans_my))\n",
"plot_all(get_projections(scipy_trans_my_inv))"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 0., 0., 0.],\n",
" [ 0., 1., 0., 0.],\n",
" [ 0., 0., 1., -400.],\n",
" [ 0., 0., 0., 1.]])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"move_x = np.eye(4)\n",
"move_x[2,3] = -400\n",
"move_x"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"gpu_trans_mx = scipy.ndimage.affine_transform(test_vol, move_x)\n",
"scipy_trans_mx_inv = scipy.ndimage.affine_transform(test_vol, scipy.linalg.inv(move_x))\n",
"plot_all(get_projections(gpu_trans_mx))\n",
"plot_all(get_projections(scipy_trans_mx_inv))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Now try and find out how to get gputools transforms working as expected ....\n",
"\n",
"\n",
"* shifting dimension 0 (Z) has actually shifted dimension 2 (X)\n",
"* use smaller shifts to get to the bottom of it"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 0., 0., -10.],\n",
" [ 0., 1., 0., -40.],\n",
" [ 0., 0., 1., -90.],\n",
" [ 0., 0., 0., 1.]])"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shift_all = np.eye(4)\n",
"shift_all[0,3] = -10\n",
"shift_all[1,3] = -40\n",
"shift_all[2,3] = -90\n",
"shift_all\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"gpu_trans_all = gputools.affine(test_vol, shift_all)\n",
"plot_all(get_projections(gpu_trans_all))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So it appears that \n",
"* the shift of 10 happens along dimension 2 (supposed to be along dimension 0)\n",
"* the shift of 40 happens along dimension 1 (supposed to be along dimension 1)\n",
"* the shift of 90 happens along dimension 0 (supposed to be along \n",
"dimension 2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
import numpy as np
import matplotlib.pyplot as plt
def get_transformed_corners(aff, vol, zeroindex=True):
''' given an affine transformation matrix for a volume
and a corresponding volume vol. This function will return
the positions of the corner points after the mapping.
'''
d0, d1, d2 = vol.shape
# these give the dimensions of the array
# the maximum index is one less
if zeroindex:
d0 -= 1
d1 -= 1
d2 -= 1
# all corners of the input volume
corners_in = [ ( 0, 0, 0, 1), \
(d0, 0, 0, 1), \
( 0, d1, 0, 1), \
( 0, 0, d2, 1), \
( d0, d1, 0, 1), \
( d0, 0,d2, 1), \
( 0, d1, d2, 1),\
( d0, d1, d2, 1)] \
corners_out = list(map(lambda c: aff @ np.array(c), corners_in))
corner_array = np.concatenate(corners_out).reshape((-1,4))
#print(corner_array)
return(corner_array)
def get_projections(in_array, fun=np.max):
""" given an array, projects along each axis using the function fun (defaults to np.max).
Returns a mapping (iterator) of projections """
projections = map(lambda ax: fun(in_array, axis=ax), range(in_array.ndim))
return projections
def plot_all(imlist, backend = "matplotlib"):
""" given a list of images, plots all of them in order
Will add different backends later """
for im in imlist:
plt.imshow(im)
plt.show()
def imprint_coordinate_system(volume, origin=(0,0,0), l=100, w=5, vals=(6000, 10000, 14000)):
""" imprints coordinate system axes in a volume at origin
axes imprints have length l and widht w and intensity values in val """
o = origin
volume[o[0]:o[0]+l, o[1]:o[1]+w, o[2]:o[2]+w] = vals[0]
volume[o[0]:o[0]+w, o[1]:o[1]+l, o[2]:o[2]+w] = vals[1]
volume[o[0]:o[0]+w, o[1]:o[1]+w, o[2]:o[2]+l] = vals[2]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment