Date: Mar 4, 2013 5:06 AM Author: Tony Kittler Subject: Re: ROC curve of target and source images "Alan B" <monguin61REM@OVETHIS.yahoo.com> wrote in message <kgqn0c$8pv$1@newscl01ah.mathworks.com>...

> "Carl S." wrote in message <kgjuaj$6d3$1@newscl01ah.mathworks.com>...

> > "Alan B" <monguin61REM@OVETHIS.yahoo.com> wrote in message <kgjkn4$b5j$1@newscl01ah.mathworks.com>...

> > > > "Carl S." wrote in message <kgfk3g$9i5$1@newscl01ah.mathworks.com>...

> > > > I have performed the following process:

> > > > 1) I have applied Dice similarity measurement for automatically segmented images and obtained the following similarity coefficients

> > >

> > > ROC curves are more generally applicable than just your application, so it is not clear what you expect your function to do. If you want help, you might want to try explaining what you are trying to do in more detail.

> >

> > Thanks Alan,

> > I would like to compare different segmentation algorithms. I have obtained segmented images from these algorithms. I have manually segmented images. I want to draw ROC curve. To draw ROC curve, I need some values such as positive true, negative true values. When I searched matlab functions to obtain these values, the functions ask Label and Scores. But I dont know how can I decide the labels and scores. Think that you have segmented brain image. How can you decide ?

> >

> > Shortly, I have automatically segmented images obtained from different algorithms. And manually segmented reference images. Now, I need an application that gets these images as input and draws ROC curves.

> > Help me pls

>

> This isn't a matlab-specific question; there are several different ways you might do that. If you can explain exactly what algorithm you are trying to implement, then you can expect an answer here. If you aren't sure what algorithm is appropriate to use for your problem, then your teacher/boss/reference paper is a better place to get that information.

I have updated the codes but still the results are unexpected :((

Could you PLEASE run the following codes for your images and inform me whether you get correct results or not. I need your help

clear all; close all;

TargetImg=imread('GRAYSCALEref.png');

Test(:,:,1)=imread('GRAYSCALEtest1.png');

Test(:,:,2)=imread('GRAYSCALEtest2.png');

[u v]=size(TargetImg);

TPrate=zeros(1, u, 2); FPrate=zeros(1, u, 2);

for i=1:2

TestImg=Test(:,:,i);

TargetMask = zeros(size(TargetImg(:,:,1)));

TargetMask = TargetImg(:,:,1)>0;

NotTargetMask = logical(1-TargetMask);

TestMask = zeros(size(TestImg));

TestMask= TestImg>0;

FPimg = TestMask.*NotTargetMask

FP = sum(FPimg(:))

TPimg = TestMask.*TargetMask

TP = sum(TPimg(:))

FNimg = TargetMask-TPimg

FN = sum(FNimg(:))

TNimg = 1- FPimg

TN =sum(TNimg(:))

TPrate(1,:,i)=TP/(TP+FN);

FPrate(1,:,i)=FP/(FP+TN);

Sensitivity(i)= TP/(TP+FN)*100

Specificity(i)= TN/(TN+FP)*100

Accuracy(i)=(TP+TN)/(TP+TN+FN+FP)*100

end

plot(sort(FPrate(:,:,1)), sort(TPrate(:,:,1)),'-y','LineWidth',3);

plot(sort(FPrate(:,:,2)), sort(TPrate(:,:,2)),'-g','LineWidth',3);

axis([0:1,0:1]);