Адаптивный порог для сегментации печени с использованием Matlab

11

Мне нужно отделить печень от компьютерной томографии брюшной полости, используя адаптивный порог. Но я отделяю весь передний план от одного. Мне нужна только печеночная часть переднего плана, отделенная. Проверьте файл PDF в http://www.ijcaonline.org/casct/number1/SPE34T.pdf. Мне нужен вывод, подобный показанному на рисунке 6.

Я прилагаю свою кодировку здесь. Пожалуйста, помогите мне.

%testadaptivethresh.m
clear;close all;
im1=imread('nfliver2.jpg');
bwim1=adaptivethreshold(im1,11,0.03,0);
figure,imshow(im1);
figure,imshow(bwim1);
imwrite(bwim1,'at2.jpg');

function bw=adaptivethreshold(IM,ws,C,tm)
%ADAPTIVETHRESHOLD An adaptive thresholding algorithm that seperates the
%foreground from the background with nonuniform illumination.
%  bw=adaptivethreshold(IM,ws,C) outputs a binary image bw with the local 
%   threshold mean-C or median-C to the image IM.
%  ws is the local window size.
%  tm is 0 or 1, a switch between mean and median. tm=0 mean(default); tm=1 median.
%
%  Contributed by Guanglei Xiong (xgl99@mails.tsinghua.edu.cn)
%  at Tsinghua University, Beijing, China.
%
%  For more information, please see
%  http://homepages.inf.ed.ac.uk/rbf/HIPR2/adpthrsh.htm

if (nargin<3)
    error('You must provide the image IM, the window size ws, and C.');
elseif (nargin==3)
    tm=0;
elseif (tm~=0 && tm~=1)
    error('tm must be 0 or 1.');
end

IM=mat2gray(IM);

if tm==0
    mIM=imfilter(IM,fspecial('average',ws),'replicate');
else
    mIM=medfilt2(IM,[ws ws]);
end
sIM=mIM-IM-C;
bw=im2bw(sIM,0);
bw=imcomplement(bw);

Исходное изображение После сегментации

Мой модифицированный код для testadaptivethresh.m

clear;
im=imread('nfliver7.gif');
figure,imshow(im)
bwim1=adaptivethreshold(im,300,-0.15,0);
bw=bwareaopen(bwim1,3000);
se=strel('diamond',4);
er=imerode(bw,se);
bw1=bwareaopen(er,3000);
er1=imerode(bw1,se);
bw2=bwareaopen(er1,1000);
fi=imfill(bw2,'holes');
figure,imshow(fi)

op=uint8(fi);
seg=im.*op;
figure,imshow(seg)
imwrite(seg,'sliver7.jpg');
Gomathi
источник
Нужно ли использовать адаптивный порог?
Вино
blogs.mathworks.com/steve/2006/06/02/cell-segmentation обнаружил, что вы можете попробовать
vini
Да, мне нужно использовать только адаптивный порог. Если нет, можете ли вы предложить мне другой хороший метод сегментации (кроме выращивания региона и FCM)?
Gomathi
www4.comp.polyu.edu.hk/~cslzhang/code.htm Я обнаружил, что вы можете найти код для К. Чжана, Х. Сонга и Л. Чжана, «Активные контуры, управляемые локальной энергией подгонки изображения», шаблон признание, том. 43, выпуск 4, с. 1199-1206, апрель 2010 г. Для этого изображения это работало достаточно хорошо
vini
Огромное спасибо. Я получил выход. Я изменил значения параметров и сделал морфологические операции. Спасибо всем.
Гомати

Ответы:

6

Я видел ссылку на документ (из SS Kumar), на который вы ссылались, и ссылку, где вы получили код (HIPR) - это два разных алгоритма, хотя оба звучат как адаптивный порог

Сначала я хотел бы сказать вам разницу.

В методе HIPR общим предположением является, по существу, изображение уровня 2 класса - т.е. передний план и фон. В любом пороговом значении для двух классов ожидаются 2 пика или области в гистограмме изображения, в частности, фон по сравнению с фоном, текст по сравнению с белой бумагой. Если вы как-то нашли оптимальную точку долины на гистограмме - вы получите самое чистое деление. Вот как может выглядеть гистограмма:
введите описание изображения здесь

Тем не менее, эта точка долины может слегка сместиться вокруг локально. Там приведены хорошие примеры вариаций освещения. Следовательно, эта оптимальная точка долины существует повсеместно, но немного изменяется в пространстве, поэтому универсальный порог потерпит неудачу. Следовательно, точка долины (порог) вычисляется для каждого локального региона.

Метод статьи С.С. Кумара и, в частности, класс изображений, с которыми вы имеете дело, является мультиклассовым (несколько объектов, каждый из которых имеет различную полосу интенсивности и разброс). В этом случае гистограммы являются мультимодальными, то есть имеют много пиков и долин, и, вероятно, каждый пик соответствует разному объекту, однако он может быть еще более сложным.

Гистограмма может выглядеть так: (это то же изображение, что и на бумаге). введите описание изображения здесь

В этом случае вышеприведенный классовый подход просто потерпит неудачу, потому что нет ни одной хорошей долины. Вот почему ваше первое изображение, которое вы разместили, выглядит как черные / белые точки вокруг.

Значение адаптивного порогового значения здесь означает, что вам необходимо определить правильный пик, и полоса серой шкалы, которая покрывает большинство интенсивностей рычага, а другие объекты находятся в резких контрастах, что позволяет

Что вы должны сделать?

Прежде всего, если необходимо использовать адаптивное пороговое значение, найдите гистограмму и посмотрите, какой диапазон интенсивности, а затем для порога влево или вправо являются границами интенсивности, пиксели которых следует отбрасывать.

В качестве альтернативы вы можете использовать Region Growing или split and merge алгоритм. Обратитесь к этому вопросу для получения дополнительной информации: какие методы сегментации можно использовать для простых изображений?

Дипан Мехта
источник
Огромное спасибо. Это был очень информативный ответ, сэр.
Гомати