I have a binary image having pixels 288*543

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.

 採用された回答

Guillaume
Guillaume 2014 年 10 月 21 日

0 投票

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2014 年 10 月 21 日

0 投票

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.

質問済み:

2014 年 10 月 21 日

回答済み:

2014 年 10 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by