Adaptive Thresholding untuk segmentasi hati menggunakan Matlab

11

Saya perlu mengelompokkan hati dari gambar CT abdomen menggunakan Adaptive Thresholding. Tapi saya memisahkan seluruh latar depan dari latar belakang saja. Saya hanya perlu bagian hati dari latar depan dipisahkan. Lihat file pdf di http://www.ijcaonline.org/casct/number1/SPE34T.pdf Saya membutuhkan output yang mirip dengan yang ditunjukkan pada Gambar 6.

Saya lampirkan kode saya di sini. Mohon bantu saya.

%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 ([email protected])
%  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);

Gambar asli Setelah Segmentasi

Kode saya yang dimodifikasi untuk 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
sumber
apakah perlu menggunakan ambang batas adaptif?
vini
blogs.mathworks.com/steve/2006/06/02/cell-segmentation menemukan ini bisa Anda coba
vini
Ya, saya perlu menggunakan ambang batas adaptif saja. Jika tidak, dapatkah Anda menyarankan saya metode segmentasi lain yang baik (selain pertumbuhan wilayah dan FCM)?
Gomathi
www4.comp.polyu.edu.hk/~cslzhang/code.htm saya menemukan ini Anda dapat mencari kode untuk K. Zhang, H. Song dan L. Zhang, "Kontur Aktif Didorong oleh Energi Pas Gambar Lokal," Pola pengakuan, vol. 43, edisi 4, hlm. 1199-1206, April 2010. Ini bekerja cukup baik untuk gambar ini
vini
Terima kasih banyak. Saya mendapat hasilnya. Saya mengubah nilai parameter dan melakukan operasi morfologi. Terima kasih semuanya.
Gomathi

Jawaban:

6

Saya melihat tautan makalah (SS Kumar) yang Anda referensikan dan tautan tempat Anda mendapatkan kode (HIPR) adalah dua algoritma yang berbeda - walaupun keduanya terdengar seperti Adaptive Thresholding

Pertama saya ingin memberi tahu Anda perbedaannya.

Dalam metode HIPR, asumsi umum pada dasarnya adalah gambar tingkat 2 kelas - yaitu foreground dan background. Dalam setiap 2 ambang batas kelas, seseorang mengharapkan 2 puncak atau wilayah dalam histogram gambar, khususnya latar belakang vs latar, teks vs kertas putih. Jika Anda entah bagaimana menemukan titik lembah optimal dalam histogram - Anda mendapatkan pembagian terbersih. Berikut adalah bagaimana histogramnya terlihat:
masukkan deskripsi gambar di sini

Namun, titik lembah ini mungkin sedikit bergeser di sekitar lokal. Ada contoh bagus variasi pencahayaan yang diberikan di sana. Oleh karena itu, titik lembah optimal ini ada di mana-mana tetapi sedikit bervariasi secara spasial, maka ambang universal akan gagal. Oleh karena itu, titik lembah (ambang batas) dihitung pada setiap wilayah lokal.

Metode kertas SS Kumar dan lebih khusus kelas gambar yang Anda hadapi, adalah multi-kelas (beberapa objek masing-masing dengan band intensitas yang berbeda dan menyebar). Dalam kasus ini, histogram adalah multi-modal, yaitu memiliki banyak puncak dan lembah dan mungkin setiap puncak berhubungan dengan objek yang berbeda, namun mungkin bahkan lebih kompleks.

Histogram mungkin terlihat seperti ini: (ini adalah gambar yang sama seperti di kertas). masukkan deskripsi gambar di sini

Dalam hal ini, pendekatan 2 kelas di atas hanya akan gagal karena tidak ada satu lembah yang baik. Itulah sebabnya gambar pertama yang Anda unggah terlihat seperti titik hitam / putih di sekitar.

Arti Adaptive Thresholding di sini, menyiratkan bahwa Anda perlu mengidentifikasi puncak yang benar dan pita skala abu-abu yang mencakup sebagian besar intensitas tuas dan benda-benda lain dalam kontras yang memungkinkan

Apa yang harus anda lakukan

Pertama-tama, jika wajib menggunakan Adaptive thresholding, cari histogram dan lihat rentang intensitas apa dan kemudian untuk ambang kiri atau ke kanan adalah batas intensitas piksel yang harus dibuang.

Atau Anda dapat menggunakan Region Growing atau split and merge algoritma. Lihat pertanyaan ini untuk beberapa informasi: Metode segmentasi apa yang dapat digunakan untuk gambar sederhana?

Dipan Mehta
sumber
Terima kasih banyak. Itu jawaban yang sangat informatif Pak.
Gomathi