How do I isolate the layers of the given grayscale image?

6 views (last 30 days)

Answers (1)

Takuji Fukumoto
Takuji Fukumoto on 25 Jan 2017
Here it is.
I = imread('point5.jpg');
Ig = rgb2gray(I);
BW = Ig > 118;
BW2 = BW;
ext = logical(ones(numel(BW(:,1)),1));
BW2 = [ext BW2 ext];
% BW2(:,[1 end]) = 1;
BW2 = imdilate(BW2,ones(3));
BW2 = imfill(BW2,'holes');
BW2 = imerode(BW2,ones(3));
BWout = BW2(:,2:end-1);
figure ,imshow(BWout)
The Imagician
The Imagician on 26 Jan 2017
Edited: The Imagician on 26 Jan 2017
Thank you Takuji Fukumoto. That is almost what I meant. Here is the annotated image. I need to extract each of these 3 layers of the image. Using the individual layers, I would like to fit a line and find the std. deviation to its upper and lower limits (as denoted in green) across various points along the length of the layer. To answer Image Analyst, no I don't need a masked image or multiple images. I just need to be able to calculate the aforementioned values for these 3 layers. Thank you.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by