From: Anna on
ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <dbb64306-c55a-45f3-9377-a2861b766a99(a)k19g2000yqc.googlegroups.com>...
> Anna:
> Post some images with the object your interested in identified
> (outlined, pointed to with arrows, etc.) You can use http://drop.io
> if you're looking for a place to post your images.
>
> Your question is too vague otherwise. Maybe you're looking to find an
> exact array of 8 numbers in a 2 by 4 array in a larger array. Like
> 100 234 213 211
> 194 166 241 188
> in a 1280x1024 uint8 image array.
> Or maybe those numbers are not exact and you're just looking for some
> kind of general pattern or shape. No way of telling unless you supply
> an image.

Hello, thank you for your reply and sorry for being vague.

At this link.. http://drop.io/lzqfnrl/asset/s17-sequence0002-edit-tiff

you will find the image.

It is actually is a very high resolution image taken from a computed tomography scan. You can make out a very small dark rectangular shape (which in reality is about 7µm in diameter). My data consists of a sequence of similar images, where these small rectangles are located at random through out. I would like to be able to locate these rectangles.

However due to the presence other dark objects (found in other images) I can not threshold out just the rectangles. I do however know the shape and the range of intensity values at these rectangles, so thought this may be the best way to locate them.

Thank you for your help,

Anna
From: Anna on
you can also find a link to another picture here...

http://drop.io/r1hcygo/asset/s17-sequence0098-edit-tiff

showing the small rectangle I would like to locate and the other dark areas which prevent me from thresholding out the rectangle as they are of similar grayscale

Anna
From: ImageAnalyst on
Anna
Why can't you just threshold and filter based on size or shape? See
my demo for examples:
http://www.mathworks.com/matlabcentral/fileexchange/25157

Aternatively try a tophat or bottomhat filter.

From: Anna on
ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <ee7fea5c-ebe0-419e-a055-1b823b4f57da(a)q12g2000yqj.googlegroups.com>...
> Anna
> Why can't you just threshold and filter based on size or shape? See
> my demo for examples:
> http://www.mathworks.com/matlabcentral/fileexchange/25157
>
> Aternatively try a tophat or bottomhat filter.

Dear ImageAnalyst,

Thank you for your help, the example was very useful. However if I use the code and the bottomhat filter I am still left with a little bit of noise. See http://drop.io/5xkj4fh5135/asset/example-of-results-tiff however I dont know how clear this picture is.

I was wondering if it is possible to be more specific when filtering the area, can I specify the shape aswell as area?. As at the moment I am using:

allBlobIntensities = [blobMeasurements.MeanIntensity];
allBlobAreas = [blobMeasurements.Area];
% Get a list of the blobs that meet our criteria and we need to keep.
allowableIntensityIndexes = (allBlobIntensities > 45) & (allBlobIntensities < 60);
allowableAreaIndexes = allBlobAreas < 8; % Take the small objects.
keeperIndexes = find(allowableIntensityIndexes & allowableAreaIndexes);
% Extract only those blobs that meet our criteria, and
% eliminate those blobs that don't meet our criteria.
% Note how we use ismember() to do this.
keeperBlobsImage = ismember(labeledImage, keeperIndexes);
% Re-label with only the keeper blobs kept.
labeledDimeImage = bwlabel(keeperBlobsImage, 4); % Label each blob so we can make measurements of it
% Now we're done. We have a labeled image of blobs that meet our specified criteria.

Thanks again,

Anna
From: ImageAnalyst on
Anna:
Yes, you can specify the shape as well. There are a number of
regionprops measurements related to shape, plus you can use things
like ratios of area to perimeter squared.
ImageAnalyst