Hey everyone,

I have been working on a small project over the last month based on an idea posted to the list last month:


In my research, we do a lot of processing of electron microscope images of nanoparticles. While image processing is very simple in scikit-image (and not-so-simple but still manageable when we were writing ImageJ Python spaghetti code way back when), the post-processing always turned ad-hoc once we started to quantify, manage and manipulate the segmented particles. Simple masking worked to an extent, but got hard to juggle for all of the various things we needed to do.

When I set out to tackle the “pattening/drawing” issue linked above, it occurred to me that a fairly pythonic API for “managing particles” could be adapted to particles returned by skimage.draw(), as well as skimage.morphology.labels()/descriptors(). In other words, “particles” from labeled images as well as “drawn particles” could be abstracted into a single API. This was, in a sense, the key insight to motivate the pursuit, and I think it paid off. The project is only possible because skimage.draw/labels() are so intelligently built.

Except for maybe the gridding capabilities, all of the core structures are built primarily to streamline common processing operations and are designed to work for scikit-image, not in opposition to it. If any of the descriptions of notebook tutorials suggest otherwise, please let me know so that I may reword them.

Well, without further ado, here is the project, pyparty.  Thanks!