creating an image using a matrix
Ältere Kommentare anzeigen
lets say we have a 50x50 matrix. All of its values are zero. I wanted to create a way to add ones only to those places of the matrix that would create a sircle if i used imshow(). So i thought if yi,yj are the coordinates for each cell i maybe could use a function like (i-yi)^2+(j-yj)^2=r^2 to find each cell that i need. Does anyone has any ideas on that or maybe a better way?
Akzeptierte Antwort
Weitere Antworten (3)
Sean de Wolski
am 8 Dez. 2011
Or:
r = 11; %radius
cx = 25; %xcenter
cy = 25;
sz = 50; %mat size
C = bsxfun(@(x,y)hypot(x-cx,y-cy)<=r,(1:sz)',1:sz);
imshow(C)
1 Kommentar
Raldi
am 8 Dez. 2011
Andrei Bobrov
am 8 Dez. 2011
A = single(zeros(50));
A(ceil(m/2),ceil(n/2)) = 1
d = bwdist(A);
r = 20;
A(abs(d-r)<.5)=1;
imagesc(A)
1 Kommentar
Raldi
am 8 Dez. 2011
Alex Taylor
am 8 Dez. 2011
The createMask method of the ROI tools was designed for the case in which you want to generate a binary image that is one where a specific ROI tool lies over an image or axes.
For example:
imshow(zeros(50));
h = imellipse(gca,[5 5 40 40]);
mask = h.createMask();
imshow(mask)
You can interactively or programmatically (as done above) any of the ROI tools, and then call the createMask method. In the case above, imellipse expects the bounding rectangle of an ellipse as the position argument. Don't know if that helps, but I thought it might be relevant to this problem.
Kategorien
Mehr zu Image Arithmetic finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!