Using Spyder Python IDE with UV

I recently switched from Anaconda to UV for several reasons – the two most important being licensing (Anaconda cannot be easily used in a commercial setting) and speed of package resolving. Especially for image processing tasks, I love the Spyder IDE, but it was a little tricky getting it to run with the proper plugins, so below are the steps to get Spyder working nicely with UV.

Weiterlesen

Saving 3D Tiff stacks in Python

Reading and writing image data is a recurring task, and I was wondering, why reading and writing image sequences that are saved in one single *.tiff file are not a standard function in the imaging libraries I regularly use (such as OpenCV, libtiff, Pillow etc.).

Reading 3D tiff files is easy, e.g. with OpenCV

import cv2

res_tuple = cv2.imreadmulti(path_to_file, flags = cv2.IMREAD_UNCHANGED)

will do the job. However, when trying to save the resulting array back to a file, it will fail. A working filesave for 3D tiff stacks could e.g. look like this:

from skimage.external import tifffile as tif
import numpy as np

image = np.ones((100,10,10), dtype=np.uint16)
tif.imsave('test.tif', image)

Of course the tifffile library will do that as well, however, I find it more convenient to have only scikit-image installed and let it call the tifffile as external library.

Getting Started with Python + Anaconda + Spyder

In the last few years I have done quite some programming work with Python and started to love both the Anaconda distribution (I might do another blog-post on that topic) and the Spyder IDE. If you are very new to Python and programming, this might be a little overkill, but it will be a very clean basis to start with and no drama, once there is the need to update or upgrade. So follow these steps if you want to get a first quick-start into Python with using the Spyder IDE and Anaconda.

Weiterlesen

How to get external DLLs into a python package

So, I recently stumbled upon the problem of having to include an external DLL into a python package, which should also work when turned into a windows executable by pyinstaller. This post, is meant to be a help if you run into the same problems I was having (and of course as my personal prosthetic knowledge).

The structure of this post will be:

Weiterlesen