How to overlay original image with created filled circle?
Show older comments
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!
Accepted Answer
More Answers (0)
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!