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

2 views (last 30 days)

Answers (1)

Takuji Fukumoto
Takuji Fukumoto on 25 Jan 2017
Here it is.
I = imread('point5.jpg');
Ig = rgb2gray(I);
imtool(Ig)
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)
  4 Comments
Image Analyst
Image Analyst on 26 Jan 2017
Explain in detail what the imprecise terms "isolate" and "separate" mean? Do you want a masked image? One image or two? Assuming you had them, what would you do with them?
I see as many as 12 layers in that grayscale image. Which are the layers you want and what distinguishes them from the neighboring layers. Please post an annotated layer where you indicate the layers in a red outline or something.
Please answer these questions only after you read this link.
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.

Categories

Find more on Image Data Workflows 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!