MATLAB: Detect Epicardium and Endocardium using imfindcircles

circlesdetectdetect circlesimage processingImage Processing Toolboximfindcirclesmri

Hi, I am trying to detect the boundary of the Left Ventricle Epicardium and endocardium using imfindcircles, but it doesn't even give a single circle. I threshold the image using Otsu's thresholding and then use the imfindcircles command but it does not give me any circle. Following is my code and Otsu's Threshold function and the image which I am using is also attached.
if true
a=imread('MRI_Cardiac.jpg');
[l c]=otsu(a,2)
[centers,radii] = imfindcircles(l,[38 40], 'Sensitivity',0.85, 'ObjectPolarity','bright')
imshow(l)
h = viscircles(centers,radii);
end

Best Answer

Found the solution, I just had to tune Sensitivity of the imfindcircles function. I set the value to 0.98 to get the region.
if true
a=imread('MRI_Cardiac.jpg');
[l c]=otsu(a,2)
[centers,radii] = imfindcircles(l,[38 40], 'Sensitivity',0.98, 'ObjectPolarity','bright')
imshow(l)
h = viscircles(centers,radii);
end