Detecting a stain in a texture
3 次查看（过去 30 天）
I'm trying to detect a stain in an image. The original image has a marble background and the stain its almost the same color, sometimes the stain is darker and sometimes brighter than the marble background. See some examples:
http://upload.wikimedia.org/wikipedia/commons/f/f3/SierraXenolith.JPG http://us.123rf.com/400wm/400/400/losalex/losalex0711/losalex071100030/2057779-marble-structure-a-stain-a-strip-stone.jpg http://image2.yell.ru/responses/5/7/1/r_670743_pr8rse37rffkijk9skb7.jpg https://lh3.googleusercontent.com/-48VlxENbnkY/SjXKwlNTtyI/AAAAAAAABGs/fFIwLb21bu8/s640/Texture%20-%20Granite.JPG http://us.123rf.com/400wm/400/400/lobanov/lobanov1108/lobanov110800013/10391208-a-texture-of-marble-with-rust-stains.jpg
I would like to know if there is a function that can detect such stain. The difficulty is distinguish the stain from the marble texture background. Can somebody help me?
Constantino Carlos Reyes-Aldasoro 2021-8-9
This would not be that difficult,
marble = imread('https://upload.wikimedia.org/wikipedia/commons/f/f3/SierraXenolith.JPG');
marble2 = marble(:,:,2)<120;
just by intensity you can distinguish the central part, if you use some morphological operators you could remove small parts and consolidate the centre. The only problem is the finger ...