How to turn all parts of a binary image outside of an ellipse to zero.
3 views (last 30 days)
Show older comments
I have the centeroid, major axis length, minor axis length, and orientation of an ellipse and I want to make everything outside of the ellipse on a binary image 0/black. How would I approach this?
0 Comments
Answers (1)
Matt J
on 23 Dec 2019
Edited: Matt J
on 23 Dec 2019
Express the elliptical region in equality form
(x-c).'*Q*(x-c)<=1
where c is the centroid, Q is the 2x2 matrix,
Q=R.'*diag(1./[a,b]).^2*R;
and R is a 2x2 rotation matrix.
Then test all pixels to see which satisfy the inequality. This can be vectorized as follows,
[x,y]=ndgrid((1:Nx)-cx,(1:Ny)-cy);
delta=[x(:),y(:)].';
mask= all( sum( (Q*delta).*delta )<=1 );
mask=reshape(mask, Nx,Ny);
0 Comments
See Also
Categories
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!