Hello Raphael

The error here is because the output of blob_doh in a numpy array of blobs, it is not an image meant for display. If you notice the example the blobs are being drawn separately inside the for loop. If no blobs are being detected, you can adjust the threshold. Lowering the threshold will make the function detect more blobs. It is clarified futher in the documentation
http://scikit-image.org/docs/dev/api/skimage.feature.html#skimage.feature.blob_doh

I was able to detect one blob in your image with the default threshold value. See:
https://gist.github.com/vighneshbirodkar/c16515126e648cf92f08d3319d3a023e

Find the result attached.

Thanks
Vighnesh

On Saturday, April 30, 2016 at 2:02:51 AM UTC-4, Raphael wrote:
hi folks, 

  Got a problem removing dust and identifying blobs/crytals. Kindly see my code below


from __future__ import division, print_function
import matplotlib.pyplot as plt
import numpy as np
from skimage import io, feature, color, measure, draw, img_as_float, exposure
from skimage.filters.rank import median
from skimage.feature import blob_dog, blob_log, blob_doh
from skimage.morphology import disk

#raw image
image_raw = img_as_float((io.imread('/home/raphael/Documents/ScikitImage/Run 4-2_00061cropped.tif'))) (RawImage.tif attached)
plt.imshow(image_raw)

#converted to grayscale

img_gray = color.rgb2gray(io.imread('/home/raphael/Documents/ScikitImage/Run 4-2_00061cropped.tif'))
plt.imshow(image_gray)


#applied median filter to take out small dust particles. But the big dust particle on the top right corner still persists (see median1.png attached)
img_filtered=median(img_gray,disk(10))
plt.imshow(img_filtered)


#applied  adapthist to make image more clearer (see adaptive.png)

img_equalized=exposure.equalize_adapthist(img_filtered)
plt.imshow(img_equalized)

#trying to detect the crystals/blobs. I followed the example here http://scikit-image.org/docs/dev/auto_examples/features_detection/plot_blob.html But this gave an error. matplotlib was not happy with the data type
blobs_doh = blob_doh(img_equalized,  max_sigma=30, threshold=.1)
plt.imshow(blobs_doh)

My problems are:

1. I could not get the dust particle out especially the really big one on the top right. How can I get it out?

2. I could not detect the crystals/blobs in the image using blob_doh

Any ideas/suggestions is highly appreciated.  Thank you!