Delete part of an image
2 views (last 30 days)
Show older comments
Alejandro Fernández
on 16 Jan 2020
Commented: Alejandro Fernández
on 16 Jan 2020
Hi, explain below what I want to do to see if anyone would know how to fix it.
I start with an image like the following:
Now I make two circles, one with a smaller radius than the other, of which I know both its center and radius. They're not concentric but they never intersect
And finally what I want to achieve is that all the points that are outside the major circle as well as inside the minor circle become black
0 Comments
Accepted Answer
Matt J
on 16 Jan 2020
Edited: Matt J
on 16 Jan 2020
[m,n]=size(oldImage);
x=(1:n);
y=(1:m).';
mask = (x-innerCenterX).^2+(y-innerCenterY).^2>=innerRadius^2 & ...
(x-outerCenterX).^2+(y-outerCenterY).^2<=outerRadius^2 ;
newImage=oldImage.*mask;
3 Comments
Matt J
on 16 Jan 2020
Appropriate type conversions will fix it,
newImage=uint16( double(oldImage).*mask );
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!