MATLAB: I don’t get equal area and Perimeter values by regionprops of left and right brain symmetric hemisphers (Normal Patient CT)

areabrainImage Processing Toolboximage segmentationperimeterstrokesymmetry

I am trying calculate the area and perimeter of Brain CT image right and left hemisphere by using regionprops so I am not sure if I am doing the right job or if there is a better way to do it.
I did image registration and transformation to align the image.
% BInary image and connecting labels and calaculate area and perimeter of both sides%%
rightbin=im2bw(rightBrain_img);
leftbin=im2bw(leftBrain_img);
CCright=bwconncomp(rightbin);
% Calculate number of connected objects in right.
nr=CCright.NumObjects;
CCleft=bwconncomp(leftbin);
%Calculate number of connected objects in left
nl=CCleft.NumObjects;
grightBrain_img=regionprops(CCright,'Area','Perimeter','Centroid' );
Area=zeros(nr,1);
Perimeter=zeros(nr,1);
for i=1:nr
Area(i)=grightBrain_img(i).Area;
Perimeter(i)=grightBrain_img(i).Perimeter;
end
RAreaMEAN=mean(Area);
RPerimeterMEAN=mean(Perimeter);
gleftBrain_img=regionprops(CCleft,'Area','Perimeter');
Area=zeros(nl,1);
Perimeter=zeros(nl,1);
for j=1:nl
Area(j)=gleftBrain_img(j).Area;
Perimeter(j)=gleftBrain_img(j).Perimeter;
end
LAreaMEAN=mean(Area);
LPerimeterMEAN=mean(Perimeter);
if LAreaMEAN==RAreaMEAN
msgbox('symmetry')
else
msgbox('Not symmetric')
end
end

Best Answer

This condition will likely never happen:

LAreaMEAN==RAreaMEAN

Why not? See the FAQ: http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F

Try ismembertol() to do floating point comparisons.

Related Question