Microscopic Multispectral Imaging
Updated: Feb 27
In this project I built a add-on light source for stereo-microscopes which allows fluorescence, visible and NIR imaging. On their own each of these techniques is quite powerful, but with a combined set up and some clever image processing, this is quite a sophisticated tool for microscopic sample analysis.
The plan is to make a ring illuminator with 4 separate channels: 365 nm (UV), visible (white LED), 710 nm (NIR), 980 nm (NIR). Ideally I would also put matching band pass filters in the barrow lens assembly but at this size it's not really an option.
The LED's I've chosen are the 3W type, and there are 3 in series for each channel. This should provide vaguely even illumination and more than enough power. However, these LED's tend to get hot in use so require a heat sink, as well as a constant current driver. For the heat sink I had a large block of aluminium turned on a CNC lathe then marked, drilled and tapped out holes to secure the led pcb's.
The LED's are oriented to face the focal point of the microscope, which leads to this banked shape. Drilling and tapping the holes by hand was also no easy job, the solution I came up with was to 3d print a jig to hold each hole vertically:
This made the job far easier and all the holes came out well. The driver I used is part of a custom pcb for another project which needed to drive 9 different 3W LED's, and is based on the AL8805 IC by diodes incorporated.
The leds were then mounted on the heatsink with thermal adhesive and the wires hidden away in a 3d printed enclosure mounted on the side:
The drive circuit is then mounted onto the microscope chassis in a separate 3d printed box, along with switches to control each illumination channel:
Finally the complete unit is put together and looks like:
Now that the illuminator is built, what can we do with it? well let's have a look at some common fluorescent objects. For a start how about the counterfeit prevention on british £10 notes:
A uk driving licence is used as ID. To stop counterfeits there are some interesting patterns added with exotic lanthanide phosphors:
but close up these features look even more amazing:
Looking at glowy things is good fun but this illuminator is capable of much more, taking a small section of the driving license we can have a go at some more complex multivariate analysis:
First the section is imaged with each channel illuminating in turn (UV - NIR). The images are converted to grayscale and the intensity response of the camera is linearised. Ideally we would also have a white reference in the same image but should be ok for a test.
The images are then imported into matlab and each channel stacked into a 3D array. I then used principal component analysis (PCA - an unsupervised machine learning technique for orthogonal transformation) to cluster the picture into regions of descending variance.
The scores of the resulting first 3 principal components look can be scaled and represented as grayscale images:
In essence what we are doing here is low resolution reflectance spectroscopy, so these components separate materials by their reflectance spectrum. The individual spectra grouping can be visualised by looking at the scores plot:
What we get are a few clusters, which relate to the different pigments / materials in our sample. This can then be visualised by making a false colour image from the scores. To do this, the scaled principal component scores are loaded into the red , green and blue channels of a picture. Since principal components are orthogonal we can use the colour of the resulting pixels to group materials by their reflectance spectrum:
The result is quite interesting, we can see that the fluorescent parts, including dust specs all come out yellow. The 2 colours of the union jack are completely separated into different components. Finally if you look at the wavy lines in the colour image, they are blue in colour, similar to a part of the union jack. But on the false colour image they appear red, similar to the background, so it is likely two completely different pigments.
The matlab code to do all of this is actually quite simple and I'll leave it here:
Hopefully I've shown here that this is quite a powerful technique for analysing samples in a completely non-destructive manor and not just a tool for looking at beautiful glowy things, although it can do that quite nicely too.