void operator()(const Mat& mat, char* data) { ImageAccessor<RGBPixel> acc; typename Mat::const_row_iterator row = mat.row_begin(); typename Mat::const_col_iterator col; char* i = data; for (; row != mat.row_end(); ++row) { for (col = row.begin(); col != row.end(); ++col) { RGBPixel tmp = acc.get(col); *(i++) = (unsigned char)tmp.red(); *(i++) = (unsigned char)tmp.green(); *(i++) = (unsigned char)tmp.blue(); } } }
void operator()(const Mat& mat, char* data) { char* i = data; ImageAccessor<T> acc; typename Mat::const_row_iterator row = mat.row_begin(); typename Mat::const_col_iterator col; T tmp; for (; row != mat.row_end(); ++row) { for (col = row.begin(); col != row.end(); ++col) { tmp = acc.get(col); if (tmp > 255) tmp = 255; *(i++) = (char)tmp; *(i++) = (char)tmp; *(i++) = (char)tmp; } } }
void operator()(const Mat& mat, char* data) { ImageAccessor<Grey16Pixel> acc; typename Mat::const_row_iterator row = mat.row_begin(); typename Mat::const_col_iterator col; char tmp; char* i = data; for (; row != mat.row_end(); ++row) { for (col = row.begin(); col != row.end(); ++col) { /* This should correctly map the 16 bit grey values onto the rgb color space. KWM */ tmp = char(acc.get(col)); *(i++) = tmp; *(i++) = tmp; *(i++) = tmp; } } }
FloatVector* histogram_real_values(const T& image) { // The histogram is the size of all of the possible values of // the pixel type. size_t l = std::numeric_limits<typename T::value_type>::max() + 1; FloatVector* values = new FloatVector(l); // set the list to 0 std::fill(values->begin(), values->end(), 0); typename T::const_row_iterator row = image.row_begin(); typename T::const_col_iterator col; ImageAccessor<typename T::value_type> acc; // create the histogram for (; row != image.row_end(); ++row) for (col = row.begin(); col != row.end(); ++col) (*values)[acc.get(col)]++; return values; }