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
0 comments:
Post a Comment