| 208 | } |
| 209 | |
| 210 | uchar* IPLImage::rgb32() |
| 211 | { |
| 212 | _rgb32.resize(_height * _width * 4); |
| 213 | if(_type == IPL_IMAGE_BW) |
| 214 | { |
| 215 | int i=0; |
| 216 | for(int y=0; y < _height; y++) |
| 217 | { |
| 218 | for(int x=0; x < _width; x++) |
| 219 | { |
| 220 | uchar val = plane(0)->p(x,y) * FACTOR_TO_UCHAR; |
| 221 | val = val < 0x80 ? 0x00 : 0xFF; |
| 222 | _rgb32[i++] = val; |
| 223 | _rgb32[i++] = val; |
| 224 | _rgb32[i++] = val; |
| 225 | _rgb32[i++] = 0xFF; |
| 226 | } |
| 227 | } |
| 228 | } |
| 229 | else if(_type == IPL_IMAGE_GRAYSCALE) |
| 230 | { |
| 231 | int i=0; |
| 232 | for(int y=0; y < _height; y++) |
| 233 | { |
| 234 | for(int x=0; x < _width; x++) |
| 235 | { |
| 236 | uchar val = (plane(0)->p(x,y) * FACTOR_TO_UCHAR); |
| 237 | _rgb32[i++] = val; |
| 238 | _rgb32[i++] = val; |
| 239 | _rgb32[i++] = val; |
| 240 | _rgb32[i++] = 0xFF; |
| 241 | } |
| 242 | } |
| 243 | } |
| 244 | else if(_type == IPL_IMAGE_COLOR) |
| 245 | { |
| 246 | int i=0; |
| 247 | for(int y=0; y < _height; y++) |
| 248 | { |
| 249 | for(int x=0; x < _width; x++) |
| 250 | { |
| 251 | uchar r = plane(0)->p(x,y) * FACTOR_TO_UCHAR; |
| 252 | uchar g = plane(1)->p(x,y) * FACTOR_TO_UCHAR; |
| 253 | uchar b = plane(2)->p(x,y) * FACTOR_TO_UCHAR; |
| 254 | _rgb32[i++] = b; |
| 255 | _rgb32[i++] = g; |
| 256 | _rgb32[i++] = r; |
| 257 | _rgb32[i++] = 0xFF; |
| 258 | } |
| 259 | } |
| 260 | } |
| 261 | else if(_type == IPL_IMAGE_ORIENTED) |
| 262 | { |
| 263 | double maxMag = 0.0; |
| 264 | for(int x=0; x<_width; x++) |
| 265 | for(int y=0; y<_height; y++) |
| 266 | if( plane(0)->p(x,y) > maxMag ) maxMag = plane(0)->p(x,y); |
| 267 |
no test coverage detected