I'm currently on a project of liver tumor segmentation. I segmented the liver using region growing, and I have to assess how accurate the result is. I recently learnt that there are certain metrics for assessing the accuracy of the region growing algorithm segmentation, like Tanimoto Coefficient, Correlation, etc. But I don't know how to implement them in Matlab. Check out https://stackoverflow.com/questions/9553204/tanimoto-coefficient-using-matlab
-
These papers may help: A framework for evaluating image segmentation algorithms or The comparison index: A tool for assessing the accuracy of image segmentation – Emre Mar 16 '12 at 09:43
-
You should elaborate on what work you have done so far. It is okay to refer to your other question on the same topic, but people should have reasonable idea about the context of the question. – Dipan Mehta Mar 16 '12 at 09:56
-
Actually I have used region growing approach for segmentation and extracted the liver region. I recently learnt that there are certain metrics for assessing the accuracy of the region growing algorithm segmentation, like Tanimoto Coefficient, Correlation, etc. But I don't know how to implement them in Matlab. Check out http://stackoverflow.com/questions/9553204/tanimoto-coefficient-using-matlab Kindly guide me. – Gomathi Mar 16 '12 at 15:37
-
So you have got farther than you you lead us to believe. Which part of the algorithm are you having difficulty in implementing? – Emre Mar 16 '12 at 17:25
-
@Emre :Tanimoto Coefficient. I don't know how to implement it in Matlab. Someone told me that for a correct result, it involves several loops. But, am new to Matlab and image processing. That's why am unable to implement it. Can you kindly guide me? – Gomathi Mar 22 '12 at 14:22
-
@Gomathi while i was about to study and answer this, i saw something new information in comments. Ideally, you should try to re-edit your question- with all information (instead of spreading it over the comments) and also specify exactly what is the question you expect to be answered. – Dipan Mehta Mar 26 '12 at 04:01
-
Also, you should generally link your question (by keeping the URLs in your questions) when they are pertaining to same problem so that people can take up closer look at other details and give you an answer with a better context. – Dipan Mehta Mar 26 '12 at 04:03
1 Answers
Given that you are working only on Tanimoto Coefficient, i am trying to be more specific rather than giving generic answer with various different approaches.
The basic notation of Tanimoto Coefficient is as follows:
$$ T(A,B) = { N_{AB} \over N_A + N_B - N_{AB} } $$
where $T$ is the desired result, over $A$ and $B$ images.
In this measure, we identify pixels either as belonging to a given segment i.e. it is segment pixel or it is background.
$N$ refers to number of pixels that are classified as segment pixel in the respective image. And $N_{AB}$ refers to the number of pixels which are classified as segment pixel in both images.
In this measure all pixels which qualifies as neither in A nor B is not calculated; only the pixels.
Also, both image must have same resolution and must have identical locations to for the segmented objects else even if the segmentation shape is right, the resultant overlap may not be right.
I am not getting into your MATLAB code, but here is the pseudo code that looks like.
Initialize N_A, N_B, N_AB;
for( all pixels @ x,y)
{
if(image_A[x][y] == SEGMENT_CLASS_PIXEL)
N_A += 1;
if(image_B[x][y] == SEGMENT_CLASS_PIXEL)
N_A += 1;
if(image_A[x][y] == SEGMENT_CLASS_PIXEL
&& image_B[x][y] == SEGMENT_CLASS_PIXEL)
N_AB += 1;
}
T = N_AB / (N_A + N_B - N_AB);
- 5,587
- 2
- 30
- 53
-
Thank you so much Sir. I got a good idea about it now. I will try implementing it. Thanks, again. – Gomathi Mar 27 '12 at 05:44