How can I put margins in an image?

前端 未结 4 1009
余生分开走
余生分开走 2020-12-11 22:39

I have a binary image of 18x18 pixels and I want to put margins around this image with the purpose of obtaining an image 20x20 pixels.

The image is binary and

相关标签:
4条回答
  • 2020-12-11 22:52

    Let's get hackish:

    %// Data:
    A = magic(3);                 %// example original image (matrix)
    N = 1;                        %// margin size
    
    %// Add margins:
    A(end+N, end+N) = 0;          %// "missing" values are implicitly filled with 0
    A = A(end:-1:1, end:-1:1);    %// now flip the image up-down and left-right ...
    A(end+N, end+N) = 0;          %// ... do the same for the other half ...
    A = A(end:-1:1, end:-1:1);    %// ... and flip back
    
    0 讨论(0)
  • 2020-12-11 22:59

    The padarray function from the image processing toolbox can be used for this purpose:

    B=padarray(A,[1,1])
    
    0 讨论(0)
  • 2020-12-11 23:07
    A=ones(18,18);%// your actual image
    [M,N] = size(A);
    B = zeros(M+2,N+2);%// create matrix
    B(2:end-1,2:end-1) = A; %// matrix with zero edge around.
    

    This first gets the size of your image matrix, and creates a zero matrix with two additional columns and rows, after which you can set everything except the outer edges to the image matrix.

    Example with a non-square matrix of size [4x6]:

    B =
    
         0     0     0     0     0     0     0     0
         0     1     1     1     1     1     1     0
         0     1     1     1     1     1     1     0
         0     1     1     1     1     1     1     0
         0     1     1     1     1     1     1     0
         0     0     0     0     0     0     0     0
    
    0 讨论(0)
  • 2020-12-11 23:09

    First make a matrix of 20 by 20 zeroes, Zimg, then insert your image matrix into the matrix of zeroes:

    Zimg(2:end-1,2:end-1)=img;
    
    0 讨论(0)
提交回复
热议问题