SVETLANA PANASYUK
Home
Resume
Publications

Medical Hyperspectral Imaging
Basics
Device
Diabetes
Wounds
Cancer
Shock

Optical Metrology
Defects
Medical
Automotive

Tissue Spectroscopy
Fluorescence
D-Reflectance
Device

Mantle Flow
Convection
Drift
Geoid
Compressibility
Inversion
Topography
Phases
Superplasticity
Hemisphere

GPS
Tien Shan
GPS
Sky Map
Errors

Remote Sensing
Vectors
Satellites

Image Processing
Deblurring
Registration
Recognition

Fun
Geosystems
Colormap
Chaos
Bubbles
Harmonics

Reference Earth Model
about
data
map_view
slice
isosurface
rms
correlation
vis5D

RedBallCounting the Red Blood Cells or finding their concentration in the solution appeared to be an important problem (as I recently found out). Many people spend their valuable time and priceless eye sight counting similar features (e.g., Red Blood Cells) looking through the microscope lenses and clicking the counter everytime they identify a cell.

I have done some work automating the counting process and came up with a self-learning, iterative algorithm in Matlab. Below is an example of a typical microscope-acquired image of a red blood cell solution (top left panel). The grid lines facilitate manual counting, but complicate the automated count, because they reduce contrast of the cells overlaping the grid lines. A magnified portion of the image (bottom left panel) reveals the donut-like looking red blood cells, and the complexity of the task identifying a cell. Usually, a human counts the cells with ~ 4-5% error. A computer, on the other hand, gives a pretty robust answer :) My Matlab code gives a total Red Blood Cell count in the top right panel as 2644. To verify the algorithm quality, you could compare the two lower panels. Do you agree with the algorithm on identified cells?

full original image
RBC original
same image as to the left, but processed.
Consists of 2644 cells

counted cells
top left corner of the image above,
magnified

RBC original zoomed
same location as to the left, but processed.
Consists of 631 cells

counted cells zoomed

Some of the cells are easy to identify, some cross through the microscope's grid and appear disturbed. Sometimes it's even hard for a person to tell if this is a cell or something else (dirt). Especially, if there are thousands of cells to count. That is why a human error is so big. Try it yourself, come on, just for fun of it! Count cells in the lower left image a few times and compare the results. My older son & me counted 5 times and got 610, 657, 657, 583, 650 cells. The estimated error (standard deviation) came as 5% with an average of 630 cells, which makes cell count in a range between 598 and 662. The algorithm gives 631 cells - inside the human estimated range. It usually takes ~ 8-10 iterations for the algorithm to reach the final answer. The progress of the iterations, convergence, is shown below:
convergence

Since you have to provide the algorithm with a notion what do you call a Red Blood Cell, it will successfully work on other "features" that need to be counted in an image. As long as you know what you're looking for :)

Many thanks to Northland Community Colledge for making the data public available.

Since so many people have contacted me asking for the code, I put it here. This image is used in example provided in the help (Download both files & type >> help countCells in the matlab window.) You could use the code as is, but please honour the authorship. If you need additional help on your particular application, I'd be happy to consult.

Work was done while at Argose Inc.