|
degate 0.1.1
|
Policy class for image region median calculation for RGB(A) images. More...
#include <MedianFilter.h>
Static Public Member Functions | |
| static rgba_pixel_t | calculate (std::tr1::shared_ptr< ImageType > src, unsigned int x, unsigned int y, unsigned int min_x, unsigned int max_x, unsigned int min_y, unsigned int max_y, unsigned int threshold) |
| Calculate the median for an RGBA image region. | |
Policy class for image region median calculation for RGB(A) images.
Definition at line 68 of file MedianFilter.h.
| static rgba_pixel_t degate::CalculateImageMedianPolicy< ImageType, rgba_pixel_t >::calculate | ( | std::tr1::shared_ptr< ImageType > | src, |
| unsigned int | x, | ||
| unsigned int | y, | ||
| unsigned int | min_x, | ||
| unsigned int | max_x, | ||
| unsigned int | min_y, | ||
| unsigned int | max_y, | ||
| unsigned int | threshold | ||
| ) | [inline, static] |
Calculate the median for an RGBA image region.
Definition at line 74 of file MedianFilter.h.
References MASK_B, MASK_G, MASK_R, and MERGE_CHANNELS.
{
assert(min_x < max_x && min_y < max_y);
assert(min_x < src->get_width());
assert(max_x < src->get_width());
assert(min_y < src->get_height());
assert(max_y < src->get_height());
unsigned int kernel_size = (max_x - min_x) * (max_y - min_y);
std::vector<unsigned int>
v_r(kernel_size),
v_g(kernel_size),
v_b(kernel_size);
unsigned int i = 0;
for(unsigned int _y = min_y; _y < max_y; _y++) {
for(unsigned int _x = min_x; _x < max_x; _x++, i++) {
rgba_pixel_t p = src->get_pixel(_x, _y);
v_r[i] = MASK_R(p);
v_g[i] = MASK_G(p);
v_b[i] = MASK_B(p);
}
}
return MERGE_CHANNELS(median<unsigned int>(v_r),
median<unsigned int>(v_g),
median<unsigned int>(v_b), 255);
}
1.7.4