Segmenting layers/plies in a carbon-fiber composite micrograph (?)

1 次查看(过去 30 天)
I would like to select the dark grey resin interlayers in the attached carbon-fibre composite micrograph. I am new to image processing in Matlab and am only aware of basic functions and techniques.
I have been playing with for several evenings and cannot seem to find a way to differentiate between intra and inter-ply resin areas. Ultimately, I would like reduce the more prominent resin inter-layers to medial-axis lines similarly to using bwmorph(I,'skel') to isolate cracks in a previously thresholded, binary image.
I would greatly appreciate any advice for tackling this problem. I am hoping to avoid more involved approaches such as machine learning.
Cheers!

回答(2 个)

Stephen Jue
Stephen Jue 2017-6-21
If this does not make you lose too much information, one approach could be to apply a horizontal motion blur filter to the image, then binarize it, like so:
I = imread('compImg.jpg');
h = fspecial('motion', 300, 0); % Apply motion blur
I = imfilter(I, h);
imshow(I);
BW = imbinarize(I, 0.60); % Apply threshold
mask = true(size(BW));
mask(:, 200:end-200) = false;
BW(mask) = 1;
imshow(BW)
This would need some tweaking, but once you can successfully isolate the resin interlayers, you can use a method such as the Hough Transform to detect these lines.

Image Analyst
Image Analyst 2017-6-21
I'd probably get initial ending points by averaging the last 10 or 20 columns together and look for major dips (dark places). Then I'd use dynamic programming to wind my way back to the other side of the image.
Alternatively I'd try a heuristic method like A* or seam carving.
Any of these methods will allow it to follow the wiggles between the layers better than something like lines which you'd get from Hough.

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by