create a white circle or sphere inside a black box

i have created white boxes inside a big black box as follows:
A=zeros(70,70); % black box
A(15:23,50:55)=1;% white box
A(50:60,50:55)=1;% white box
A(20:23,10:13)=1 ;% white box
imshow(A,[])
how can i add to the same matrix A a white circle or a white sphere?thanks in advance.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 21 de Jul. de 2011
A=zeros(70,70);
r = 10; %radius
m = {40,40}; %midpoint
A(m{:})=1;
B = imdilate(A,strel('disk', r,0) );
imshow(B)
ADD wutout Image Processing Toolbox
A=zeros(70,70);
r = 10; %radius
P = [40,40]; %midpoint
[m n ] = size(A);
X = bsxfun(@plus,(1:m)',zeros(1,n));
Y = bsxfun(@plus,(1:n),zeros(m,1));
B = sqrt(sum(bsxfun(@minus,cat(3,X,Y),reshape(P,1,1,[])).^2,3))<=r;
imagesc(B)

4 comentarios

Friedrich
Friedrich el 21 de Jul. de 2011
If she has Image Processing Toolbox your code will work. Maybe consider using bwdist. This should be possible too and should result in short code ;)
Andrei Bobrov
Andrei Bobrov el 21 de Jul. de 2011
A=zeros(70,70);
r = 10; %radius
m = {40,40}; %midpoint
A(m{:})=1;
B = bwdist(A) <= r;
imshow(B)
Friedrich
Friedrich el 21 de Jul. de 2011
Nice. +1
Andrei Bobrov
Andrei Bobrov el 21 de Jul. de 2011
Thanks, Friedrich!
Adding my variant without Image Processing Toolbox

Iniciar sesión para comentar.

Más respuestas (3)

Friedrich
Friedrich el 21 de Jul. de 2011
Hi,
can this help?
function out = my_circ( A, midpoint, radius )
out = A;
[ m n] = size(A);
for i=1:m
for j=1:n
if norm( [i,j] - midpoint ) <= radius
out(i,j) = 1;
end
end
end
end
And call it through:
>> A = zeros(100);
>> B = my_circ(A,[40,40],10);
>> imshow(B,[]);
Ujitha
Ujitha el 3 de Mzo. de 2013

0 votos

Hi this was really helpful. How do you do this to create two different sizes of circles.
Thanks inadvance
Ujitha
Ujitha el 4 de Mzo. de 2013

0 votos

Thanks a lot. It was really helpful..!

Etiquetas

Preguntada:

el 21 de Jul. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by