cluster greyscale images
1
1
Entering edit mode
6.9 years ago

Hello everyone,

I have images of the cross section of an organ from different microscopy samples (mice). Now, there are visible differences between the samples and I would like to cluster them by similarity.

The images can be put into certain groups. At the time this is done by hand, meaning someone sits down, looks at all the images and groups them when they look similar. The images are greyscale so comparison has to be made by spatial features.

I am now searching for a computational method to do this clustering. The best would be a plugin for ImageJ/Fiji or something written in R, Perl or Java. Also i've come across self organizing maps that are applied for tasks like this but they always concentrate on colorization and not spatial features.

Stephan

clustering imaging microscopy • 2.0k views
0
Entering edit mode

Do you segment the images first ? Or do you want to do the clustering using global image features ?  If so, do you have an idea of which ones would be suitable for the problem at hand ? You may also want to consider classification (i.e. supervised) approaches if the images always fall into the same well defined categories.

In any case, it's unlikely you'll find something that will work out of the box.

0
Entering edit mode

supervised could be an option. The images don't always nessesarily fall into the same categories, but most of them do. With segmentation you mean clustering image regions and compare them to that of others or just extract small subimages? Comparing image-regions could also be an option. If both images have a certain pattern in the same region it would be a match for example.

0
Entering edit mode
6.8 years ago
Pavel Senin ★ 1.9k

If supervised classification/clustering is considered, this task seems to be very similar to the Kaggle's digit recognizer competition; they have tutorials and longest discussions over there. I was able to get quite good results on gray scale MNIST data (vectors of shade intensity) by using RF, KNN, and SVM libraries in R for classifiers trained on the reduced training set obtained by clustering of the original dataset using hclust:

dat = read.csv("train.csv",sep=" ")
reduced = rep(NA,length(dat[1,]))
for(i in 0:9){
datPart <- dat[dat[,1]==i,-1]
hc <- hclust(dist(datPart), "ave")
memb <- cutree(hc, k = 400)
for(j in 1:400){
reduced = rbind(reduced, as.vector(c(i, unlist((datPart[memb==j,])[1,]))))
}
}
write(t(reduced),file="digits_resized_reduced_400.csv",ncolumns=785)


This code extracts 400 of most distinct digits (using cutree) out of the each of given classes (digits 0 - 9). ImageJ/FIJI can do a batch conversion of your images into csv and back to images.

0
Entering edit mode

thanks, sounds interesting. There are a lot of Methods proposed for this task. KNN and CNNs sound promising. But it could take a while until I got myself into that topic. In the end an ImageJ/Fiji Plugin performing that task would be a nice thing to try.

0
Entering edit mode

I think, in order to get a first impression (and to assess the feasibility of an unsupervised clustering right away), you can run imageJ on all your images in order to resize those to the same size and write them into CSV, so R can read those. Then, by using the script above, you can cluster your data and to extract say 2, 4, 6, 10, ... and so on cluster centroids. By converting these back to images and examining those visually you shall get an idea if it is feasible at all without resorting to the features extraction by segmentation and so on (as Jean-Karim suggests).