Dear All,
I have following shape:
And I want to draw a filled circle above it (make a mask for this circle). I have tried following code, but it didn't work as I expected:
close all;clc; clear all;original=imread('SA_r1.jpg'); % original=imread('u.jpg');
original=imresize(original,[500 500],'bicubic');% simple image interpolation.
bi= im2bw(original); % bi(binary image)
hbw = bwconvhull(bi);[Clab, ~] = bwlabel(hbw);st = regionprops(Clab,'Centroid','BoundingBox','Orientation','MajorAxisLength','MinorAxisLength');figure; imshow(original); hold on;xmin=floor(st.BoundingBox(1)); ymin=floor(st.BoundingBox(2));xmax=floor(st.BoundingBox(1)+st.BoundingBox(3)); ymax=floor(st.BoundingBox(2)+st.BoundingBox(4));figure; imshow(hbw,[]); hold on; sp_mean=15;r1=floor(ymin-sp_mean); r2=floor(ymax+sp_mean);c1=floor(xmin-sp_mean);c2=floor(xmax+sp_mean);rectangle('Position',[xmin-sp_mean, ymin-sp_mean, st.BoundingBox(3)+2*sp_mean, st.BoundingBox(4)+2*sp_mean], 'Curvature',[1,1],'FaceColor','w');figure; original(c1:c2,r1:r2)=rectangle('Position',[xmin-sp_mean, ymin-sp_mean, st.BoundingBox(3)+2*sp_mean, st.BoundingBox(4)+2*sp_mean], 'Curvature',[1,1],'FaceColor','w');imshow(original); contour(original, [0,0], 'r');
Here is the results I have:
So I want to overlay original image with created filled circle and draw a contour of it.
Thanks for any help!
Best Answer