Spam quick start

You can find a complete docmumentation about spam that is able to do more than just 2D images correlation.

Here we present a simple DIC on 2D images.

This tutorial has been tested using [spam 0.6.0.1]

Preprocessing the image

To comvert raw image into tiff, we recomande dcraw. It is able to process CR2, NEF, … image formats. `

Note

spam need grayscale image. A way to process the raw image is :

dcraw -d -T image.NEF

The images

The initial and final image for DIC

import tifffile
import matplotlib.pyplot as plt
import matplotlib.cm as cm
adr_i='/data/Manips/Columnar_Ice/CI23/DIC_Analysis/Test_spam/CI23_set01_001.tiff'
adr_f='/data/Manips/Columnar_Ice/CI23/DIC_Analysis/Test_spam/CI23_set01_027.tiff'
im_i=tifffile.imread(adr_i)
im_f=tifffile.imread(adr_f)
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-3-b7248b34c331> in <module>
----> 1 im_i=tifffile.imread(adr_i)
      2 im_f=tifffile.imread(adr_f)

~/miniconda3/envs/basepy39/lib/python3.9/site-packages/tifffile/tifffile.py in imread(files, aszarr, **kwargs)
    808 
    809         if isinstance(files, (str, os.PathLike)) or hasattr(files, 'seek'):
--> 810             with TiffFile(files, **kwargs_file) as tif:
    811                 if aszarr:
    812                     return tif.aszarr(**kwargs)

~/miniconda3/envs/basepy39/lib/python3.9/site-packages/tifffile/tifffile.py in __init__(self, arg, mode, name, offset, size, _multifile, _useframes, _master, **kwargs)
   2975             raise ValueError(f'invalid mode {mode!r}')
   2976 
-> 2977         fh = FileHandle(arg, mode=mode, name=name, offset=offset, size=size)
   2978         self._fh = fh
   2979         self._multifile = bool(_multifile)

~/miniconda3/envs/basepy39/lib/python3.9/site-packages/tifffile/tifffile.py in __init__(self, file, mode, name, offset, size)
   9444         self.is_file = None
   9445         self._lock = NullContext()
-> 9446         self.open()
   9447 
   9448     def open(self):

~/miniconda3/envs/basepy39/lib/python3.9/site-packages/tifffile/tifffile.py in open(self)
   9457             self._file = os.path.realpath(self._file)
   9458             self._dir, self._name = os.path.split(self._file)
-> 9459             self._fh = open(self._file, self._mode)
   9460             self._close = True
   9461             if self._offset is None:

FileNotFoundError: [Errno 2] No such file or directory: '/data/Manips/Columnar_Ice/CI23/DIC_Analysis/Test_spam/CI23_set01_001.tiff'
plt.figure(figsize=(30,9.4))
plt.subplot(121)
plt.imshow(im_i,cmap=cm.gray)
plt.axis('equal')
plt.title('initial image')
plt.subplot(122)
plt.imshow(im_f,cmap=cm.gray)
plt.axis('equal')
plt.title('final image')
Text(0.5, 1.0, 'final image')
../_images/Spam_quick_start_6_1.png
im_i.shape
(4924, 7378)

The mask image

adr_m='/data/Manips/Columnar_Ice/CI23/DIC_Analysis/Test_spam/CI23_set01_001_mask.tiff'
im_m=tifffile.imread(adr_m)
plt.figure(figsize=(15,9.4))
plt.imshow(im_m,cmap=cm.gray)
plt.axis('equal')
plt.colorbar()
plt.title('initial image')
Text(0.5, 1.0, 'initial image')
../_images/Spam_quick_start_10_1.png
im_m.shape
(4924, 7378)

The DIC using spam

mkdir spamcor

spam-reg -mf1 CI23_set01_001_mask.tiff -bb 8 -be 2 CI23_set01_001.tiff CI23_set01_027.tiff

spam-pixelSearch CI23_set01_001.tiff CI23_set01_027.tiff -hws 15 -ns 30 -sr 0 0 -20 50 -20 20 -vtk -mf1 CI23_set01_001_mask.tiff

spam-filterPhiField -pf CI23_set01_001-CI23_set01_027-pixelSearch.tsv -scc -scct 0.99 -cint

spam-ldic CI23_set01_001.tiff CI23_set01_027.tiff -pf CI23_set01_001-CI23_set01_027-pixelSearch-filtered.tsv -hws 15 -vtk

spam-filterPhiField -pf CI23_set01_001-CI23_set01_027-ldic.tsv -srs -cint -vtk -notsv -od spamcor/

Need to build a function to import data from spam in xarray-dic