Creating a PNG testing image in Matlab

by 1/07/2015 09:02:00 AM 0 comments
I needed to create a small test image with known pixel values. The easiest way for me was to fire up Matlab and use it's built in commands to generate a small PNG image. I'm just documenting the steps here for the next time I need to do such a thing.

The Code

Here's the code:

%% Creating a 20x20 pixel image

% Here's a linear ramp of 400 samples
r = 0:399;

% reshape the ramp to be a row-oriented 20x20 matrix
% i.e. r(1, 1) = 0, r(1, 2) = 1 ...
r = reshape(r, 20, 20)';

% Create other color arrays
g = r / 2;
b = flipud(fliplr(r));

% Stuff them all into one 20x20x3 matrix
i = zeros(20, 20, 3);
i(:, :, 1) = r;
i(:, :, 2) = g;
i(:, :, 3) = b;

% Normalize to byte values
ui = uint8(i / max(max(max(i))) * 255); 

% write it out
imwrite(ui, 'smalltestimage.png', 'PNG');

The Image

And Voila ...

The Pixel Values

And for the record here's the actual pixel values in ui

>> ui

ui(:,:,1) =

    0    1    1    2    3    3    4    4    5    6    6    7    8    8    9   10   10   11   12   12
   13   13   14   15   15   16   17   17   18   19   19   20   20   21   22   22   23   24   24   25
   26   26   27   27   28   29   29   30   31   31   32   33   33   34   35   35   36   36   37   38
   38   39   40   40   41   42   42   43   43   44   45   45   46   47   47   48   49   49   50   50
   51   52   52   53   54   54   55   56   56   57   58   58   59   59   60   61   61   62   63   63
   64   65   65   66   66   67   68   68   69   70   70   71   72   72   73   73   74   75   75   76
   77   77   78   79   79   80   81   81   82   82   83   84   84   85   86   86   87   88   88   89
   89   90   91   91   92   93   93   94   95   95   96   97   97   98   98   99  100  100  101  102
  102  103  104  104  105  105  106  107  107  108  109  109  110  111  111  112  112  113  114  114
  115  116  116  117  118  118  119  120  120  121  121  122  123  123  124  125  125  126  127  127
  128  128  129  130  130  131  132  132  133  134  134  135  135  136  137  137  138  139  139  140
  141  141  142  143  143  144  144  145  146  146  147  148  148  149  150  150  151  151  152  153
  153  154  155  155  156  157  157  158  158  159  160  160  161  162  162  163  164  164  165  166
  166  167  167  168  169  169  170  171  171  172  173  173  174  174  175  176  176  177  178  178
  179  180  180  181  182  182  183  183  184  185  185  186  187  187  188  189  189  190  190  191
  192  192  193  194  194  195  196  196  197  197  198  199  199  200  201  201  202  203  203  204
  205  205  206  206  207  208  208  209  210  210  211  212  212  213  213  214  215  215  216  217
  217  218  219  219  220  220  221  222  222  223  224  224  225  226  226  227  228  228  229  229
  230  231  231  232  233  233  234  235  235  236  236  237  238  238  239  240  240  241  242  242
  243  243  244  245  245  246  247  247  248  249  249  250  251  251  252  252  253  254  254  255


ui(:,:,2) =

    0    0    1    1    1    2    2    2    3    3    3    4    4    4    4    5    5    5    6    6
    6    7    7    7    8    8    8    9    9    9   10   10   10   11   11   11   12   12   12   12
   13   13   13   14   14   14   15   15   15   16   16   16   17   17   17   18   18   18   19   19
   19   19   20   20   20   21   21   21   22   22   22   23   23   23   24   24   24   25   25   25
   26   26   26   27   27   27   27   28   28   28   29   29   29   30   30   30   31   31   31   32
   32   32   33   33   33   34   34   34   35   35   35   35   36   36   36   37   37   37   38   38
   38   39   39   39   40   40   40   41   41   41   42   42   42   43   43   43   43   44   44   44
   45   45   45   46   46   46   47   47   47   48   48   48   49   49   49   50   50   50   50   51
   51   51   52   52   52   53   53   53   54   54   54   55   55   55   56   56   56   57   57   57
   58   58   58   58   59   59   59   60   60   60   61   61   61   62   62   62   63   63   63   64
   64   64   65   65   65   66   66   66   66   67   67   67   68   68   68   69   69   69   70   70
   70   71   71   71   72   72   72   73   73   73   73   74   74   74   75   75   75   76   76   76
   77   77   77   78   78   78   79   79   79   80   80   80   81   81   81   81   82   82   82   83
   83   83   84   84   84   85   85   85   86   86   86   87   87   87   88   88   88   89   89   89
   89   90   90   90   91   91   91   92   92   92   93   93   93   94   94   94   95   95   95   96
   96   96   97   97   97   97   98   98   98   99   99   99  100  100  100  101  101  101  102  102
  102  103  103  103  104  104  104  104  105  105  105  106  106  106  107  107  107  108  108  108
  109  109  109  110  110  110  111  111  111  112  112  112  112  113  113  113  114  114  114  115
  115  115  116  116  116  117  117  117  118  118  118  119  119  119  120  120  120  120  121  121
  121  122  122  122  123  123  123  124  124  124  125  125  125  126  126  126  127  127  127  128


ui(:,:,3) =

  255  254  254  253  252  252  251  251  250  249  249  248  247  247  246  245  245  244  243  243
  242  242  241  240  240  239  238  238  237  236  236  235  235  234  233  233  232  231  231  230
  229  229  228  228  227  226  226  225  224  224  223  222  222  221  220  220  219  219  218  217
  217  216  215  215  214  213  213  212  212  211  210  210  209  208  208  207  206  206  205  205
  204  203  203  202  201  201  200  199  199  198  197  197  196  196  195  194  194  193  192  192
  191  190  190  189  189  188  187  187  186  185  185  184  183  183  182  182  181  180  180  179
  178  178  177  176  176  175  174  174  173  173  172  171  171  170  169  169  168  167  167  166
  166  165  164  164  163  162  162  161  160  160  159  158  158  157  157  156  155  155  154  153
  153  152  151  151  150  150  149  148  148  147  146  146  145  144  144  143  143  142  141  141
  140  139  139  138  137  137  136  135  135  134  134  133  132  132  131  130  130  129  128  128
  127  127  126  125  125  124  123  123  122  121  121  120  120  119  118  118  117  116  116  115
  114  114  113  112  112  111  111  110  109  109  108  107  107  106  105  105  104  104  103  102
  102  101  100  100   99   98   98   97   97   96   95   95   94   93   93   92   91   91   90   89
   89   88   88   87   86   86   85   84   84   83   82   82   81   81   80   79   79   78   77   77
   76   75   75   74   73   73   72   72   71   70   70   69   68   68   67   66   66   65   65   64
   63   63   62   61   61   60   59   59   58   58   57   56   56   55   54   54   53   52   52   51
   50   50   49   49   48   47   47   46   45   45   44   43   43   42   42   41   40   40   39   38
   38   37   36   36   35   35   34   33   33   32   31   31   30   29   29   28   27   27   26   26
   25   24   24   23   22   22   21   20   20   19   19   18   17   17   16   15   15   14   13   13
   12   12   11   10   10    9    8    8    7    6    6    5    4    4    3    3    2    1    1    0

Brian Schlining

Developer

Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

0 comments: