thresholding to find and exclude homogeneous areas in glandular images - image processing

Hello there!
I am working on a problem trying to identify glands in an image and create a skeletonization of them. I am using the Matlab webinar advice and that has been working great for images where the glands are already identified (thanks Brett!). But there are some images (of course its cancer images), where there are some areas of glands and some areas that are bright (unfortunately, like glands) but are more homogeneous - I don't want those areas included!
I have been using graythresh, then im2bw to get the binary mask - but often times those bright homogeneous areas are included in the binary mask. Any other advice to exclude those areas? I feel like maybe the answer is simpler than i think.
Thanks! Nad

 Accepted Answer

I haven't the slightest idea what you're looking for and I couldn't even hand draw it if I had to. To me the image in Example 2 looks like a total mess with nothing recognizable in it, so I wouldn't be able to find anything in it, by eye, hand, or computer.

6 Comments

Hi Image Analyst,
First of all, thanks for taking a stab at this.
What I am looking for, are glands. Here is an example of how I would trace the glands manually <http://dl.dropbox.com/u/54307333/Gland%20Examples.jpg>. Two glandular images are on the left, and my overlay is on the right.
Example 1 is an example of noncancer (<http://dl.dropbox.com/u/54307333/example1.jpg)>, and Example 2 is an example of cancer (<http://dl.dropbox.com/u/54307333/Example%202.png)>. With cancer the glands become so distorted but are still present. What I am trying to measure is the length of the gland edge, since that has been shown to help separate cancer and non cancer.
Problem is the gland edges in example 2, are focused more in the bottom left corner of the images. But when I apply a threshold to try to identify glands, I get more than just the glands.
Do you have any thoughts on how I can exclude areas that are homogenous that do not include gland edges? I have indicated a glandular area and a non glandular area in the following image. I'd like to only focus on detecting the area that is glandular.
Hope this helps clarify.
Nad
Also - you are right to say that there is (mostly) nothing recognizable in the second image....its an image of cancer so rightfully quite distorted. I think that subjectively we can do a decent job of separating cancer and noncancer (the images I included are representative examples). but not sure what I can quantify that can give us an objective answer that separates cancer and non cancer as well.
Thanks, Nad
Can you use a texture filter like stdfilt() or entropyfilt()?
Thanks for the tip. I read up on each of those. I applied stdfilt to some of my images with a few different Nhood values.
So if i understand this function (and my images results) correctly, once the stdfilt is applied, then the the darker areas of the filtered image correspond to areas where the standard deviation between neighboring pixels is low (i.e. more homogeneous). Therefore, I could use this to preprocess my images to exclude areas where the standard deviation is low...am i interpreting this correctly?
For others interested, there are nice tips on the texture filters that IA suggested here - http://www.mathworks.com/products/image/examples.html?file=/products/demos/shipping/images/ipextexturefilter.html
Yes that is correct. You can identify low areas by thresholding:
mask = textureImage < someValue;
Then either process the whole image and multiply it by the mask to zero out low texture areas of your output image, or use mask to just extract a linear list of pixel values. It just depends on how you want to use this information.
I did an AND operation with my old image and the result of the texture filter. That seems to be working great in excluding those homogeneous areas.
Thanks for your help.

Sign in to comment.

More Answers (0)

Categories

Find more on Biotech and Pharmaceutical in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!