Адаптивний порог для сегментації печінки за допомогою 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');

чи потрібно використовувати адаптивне порогування?
vini

blogs.mathworks.com/steve/2006/06/02/cell-segmentation знайшов, що це можна було б спробувати
vini

Так, мені потрібно використовувати лише адаптивне порогове значення. Якщо ні, чи можете ви запропонувати мені будь-який інший хороший метод сегментації (крім вирощування регіонів та FCM)?
Гомати

www4.comp.polyu.edu.hk/~cslzhang/code.htm Я виявив, що це можна знайти код для К. Чжан, Х. Сонг та Л. Чжан, "Активні контури, керовані локальною енергією, що підходить для зображення", Шаблон визнання, вип. 43, випуск 4, стор. 1199-1206, квітень 2010 р. Це спрацювало досить добре для цього зображення
vini

Дуже дякую. Я отримав вихід. Я змінив значення параметрів і зробив морфологічні операції. Всім дякую.
Гомати

Відповіді:


6

Я побачив посилання статті (С.С. Кумара), на яку ви посилаєтесь, і посилання, де ви отримали код (HIPR), є двома різними алгоритмами, хоча обидва звучать як адаптивний поріг

По-перше, я хотів би сказати вам різницю.

У методі HIPR загальне припущення - це, по суті, зображення рівня 2 класу - тобто переднього плану та фону. У будь-якому пороговому поглинанні для 2 класу очікується 2 піки або регіони в гістограмі зображення, зокрема фон порівняно з форвард, текст проти білого паперу. Якщо ви якось знайшли оптимальну точку долини в гістограмі - ви отримаєте найчистіший поділ. Ось як може виглядати гістограма:
введіть тут опис зображення

Однак ця точка долини може дещо зміщуватись локально. Є хороші приклади варіантів освітлення, наведених там. Отже, ця оптимальна точка долини існує скрізь, але незначно просторово змінюється, отже, універсальний поріг не зможе. Отже, точка (поріг) долини обчислюється для кожного місцевого регіону.

Метод статті С. Кумара, а точніше класу зображень, з якими ви маєте справу, є багатокласним (кілька об'єктів, кожен з яких має різну діапазон інтенсивності та поширення). У цьому випадку гістограми є мультимодальними, тобто мають багато вершин і долин, і, мабуть, кожен пік відповідає різному об'єкту, але він може бути ще складнішим.

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

У цьому випадку вищевказаний підхід 2 класу просто не зможе, оскільки немає жодної хорошої долини. Ось чому ваше перше зображення, яке ви опублікували, виглядає як чорні / білі точки навколо.

Сенс адаптивного порогу тут означає, що вам потрібно визначити правильний пік, а смуга сірої гами, яка охоплює більшість інтенсивності важеля та інші об'єкти, суворі контрасти, що дозволяє

Шо тобі варто зробити?

Перш за все, якщо обов'язково використовувати адаптивне порогове значення, знайдіть гістограму і подивіться, який діапазон інтенсивності, а потім для порогу ліворуч або праворуч - межі інтенсивності, які пікселі слід відкинути.

Крім того, ви можете використовувати алгоритм вирощування регіону або розбиття та злиття. Щоб отримати докладнішу інформацію, зверніться до цього питання: Які методи сегментації можна використовувати для простих зображень?


Дуже дякую. Це була дуже інформативна відповідь, сер.
Гомати
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.