После 2 или 3 дней поиска я все еще не нашел решения моей проблемы.Сегментация MATLAB-mices в изображениях в оттенках серого, которая является инвариантной к теням
Я хочу создать сегментирование мыши без тени. Проблема в том, что, если мне удастся удалить тень, я также удалю хвост и проблемы, которые являются проблемой. Тень происходит от стены арены, в которой находится мышь.
Я хочу удалить тень из изображения в оттенках серого, но я понятия не имею, как это делается. Сначала я удалил фон изображения и получил следующее изображение.
edit1: Спасибо за ответ, что хорошо работает, когда тень не трогать мышь. Это то, что я иначе:
из этого исходного изображения:
Я извлекая каждый кадр из TIF файла и код для каждого кадра. Это код, я использую:
for k=1:1000
%reads image
I = imread('souris3.tif',k);
%first stage: perform thesholding and fill holes
seg = I >20000;
seg = imfill(seg,'holes');
%fixes the missing tail problem
%extract edges, and add them to the segmentation.
edges = edge(I);
seg = seg | edges;
%fill holes (again)
seg = imfill(seg,'holes');
%find all the connected components
CC = bwconncomp(seg,8);
%keeps only the biggest CC
numPixels = cellfun(@numel,CC.PixelIdxList);
[biggest,idx] = max(numPixels);
seg = zeros(size(edges));
seg(CC.PixelIdxList{idx}) = 1;
imshow(seg);
end
Я выбираю 20000 для шага с помощью команды impixelinfo
, потому что изображение находится в uint16
и это среднее значение мыши.
Это ссылка, если вы хотите иметь TIF файл:
Спасибо за помощь.
Спасибо! Он хорошо работает, когда тень не касается мыши. У меня нет только одного изображения, кроме отдельных, и иногда появляется тень. –
Вы можете скачать файл tif по ссылке –
Спасибо! Если я найду другие проблемы, я скоро приду к вам –