A Python app for analyzing microscope images of nano-ice crystal growth using Python and machine learning.
CrystalEyes uses Python and the Cellpose machine learning library to extract data from images of ice crystal growth. It processes binary Linkam Data Files to extract temperature data and images. These images are analyzed to extract values such as average area, density, and coverage of ice crystals. The GUI, made using Tkinter and Ttk, provides a simple user experience.
Version 1.0.0
introduces a new GUI and support for LDF files only. In contrast to versions 0.8.0
and 0.9.0
, LDF support enables instant processing of images. You do not have to export images and video files from Linkam manually; the built-in binary parser does that instead.
Warning
Timestamp data is not available for this version. The app will not process timestamps from LDF files. The duration between each frame defaults to one minute.
This is the latest and fully functional version of CrystalEyes. Previous versions of CrystalEyes are in beta and not optimized for performance or user experience. The features newly added in this version are:
- Extraction of additional variables (see below for full list)
- Fixed debugging console
- Data boxes to quickly view temperature / rate / limit data along with interactive temperature graph
- Optimized data analysis and computer vision algorithms; average compute time on test machine (see below) ranges from 12-30 seconds, depending on the number of shapes present in a sample
Version | Description |
---|---|
v1.2.0 |
Fully functioning user interface, parser, and analysis modules |
v1.0.0 |
Non-functioning beta testing for new user interface |
v0.9.0 |
Non-functioning beta testing for Linkam Data File parser |
v0.8.0 |
Functioning and OCR-dependent, outdated |
Unfortunately, CrystalEyes v1.2.0
has highly specific dependencies. Most critical is Cellpose 3.0.10
, as the newer 4.0.6
is too-heavily GPU-reliant and requires Nvidia CUDA due to its larger neural network. The latest version of NumPy supported by Cellpose 3.0.10
is 1.26.4
, meaning Python versions 3.9
, 3.10
, 3.11
, or 3.12
are supported.
Caution
Python 3.13
does not support NumPy 1.26
. Please be aware of which Python version your system is using, as it may not support this software.
CrystalEyes 1.2.0
was primarily tested on a system with 32 GB RAM with an integrated Intel processor/graphics chip (the graphics card was not used). Expect 1.8-2.5 GB of RAM use during operation; CPU usage will spike for each frame analysis as well.
Microsoft's Redistributable C++ Compiler (often installed through Visual Studio Build Tools) may be required to install NumPy 1.26
. If you are unable to download the C++ compiler, consider using an alternate Python interpreter and package manager (such as Miniconda).
Note
Python version 3.10.13
along with NumPy version 1.26.3
were used during testing, along with Miniconda3 as the interpreter.
A full list of
- File name
- Date
- Frame number
- Ramp number
- Temperature
- Temperature limit
- Temperature rate
- Raw images
- Processed images
- Processed data
- Raw images
- Processed images
- Average areas (px^2)
- Average areas (um^2)
- Density (crystals per um^2)
- Coverage (ratio)