I have a binary image having pixels 288*543

1 visualizzazione (ultimi 30 giorni)
I have a binary image having pixels 288*543(rows and columns). To that i need to assign zeros for 1 row and 1 column surrounding the 288*543. How can i achieve this.can anyone suggest some code for this.
Thank you.

Risposta accettata

Guillaume
Guillaume il 21 Ott 2014
If you have the image processing toolbox, use padarray, otherwise:
newm = zeros(size(m) + 2);
newm(2:end-1, 2:end-1) = m;

Più risposte (1)

Image Analyst
Image Analyst il 21 Ott 2014
Try this
binaryImage(:,1) = false; % Make first column false.
binaryImage(:,end) = false; % Make last column false.
binaryImage(1,:) = false; % Make first row false.
binaryImage(1,end) = false; % Make last row false.
If your binary image is not really binary (of logical class) but actually something else (like uint8 or double), then replace false with 0 (zero).
This actually makes the edge layer of pixels false. If what you mean by "surround" is that you need to enlarge the image, then use padarray(), which will add a layer of pixels all around the image and enlarge it.

Community Treasure Hunt

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

Start Hunting!

Translated by