How to turn all parts of a binary image outside of an ellipse to zero.

4 Ansichten (letzte 30 Tage)
Hardit Singh
Hardit Singh am 23 Dez. 2019
Bearbeitet: Matt J am 23 Dez. 2019
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?

Antworten (1)

Matt J
Matt J am 23 Dez. 2019
Bearbeitet: Matt J am 23 Dez. 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);

Kategorien

Mehr zu Geometric Transformation and Image Registration finden Sie in Help Center und File Exchange

Produkte


Version

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by