Commit 223a82d1 authored by Davis King's avatar Davis King

Added randomly_color_image()

parent 6bf11ad2
......@@ -13,6 +13,7 @@
#include "image_transforms/integral_image.h"
#include "image_transforms/image_pyramid.h"
#include "image_transforms/label_connected_blobs.h"
#include "image_transforms/randomly_color_image.h"
#endif // DLIB_IMAGE_TRANSFORMs_
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_RANDOMLY_COlOR_IMAGE_H__
#define DLIB_RANDOMLY_COlOR_IMAGE_H__
#include "randomly_color_image_abstract.h"
#include "../hash.h"
#include "../pixel.h"
#include "../matrix.h"
namespace dlib
{
// ----------------------------------------------------------------------------------------
template <typename T>
struct op_randomly_color_image : does_not_alias
{
op_randomly_color_image( const T& img_) : img(img_){}
const T& img;
const static long cost = 7;
const static long NR = 0;
const static long NC = 0;
typedef rgb_pixel type;
typedef const rgb_pixel const_ret_type;
typedef typename T::mem_manager_type mem_manager_type;
typedef row_major_layout layout_type;
const_ret_type apply (long r, long c ) const
{
const unsigned long gray = get_pixel_intensity(img[r][c]);
if (gray != 0)
{
const uint32 h = murmur_hash3(&gray, sizeof(gray));
rgb_pixel pix;
pix.red = static_cast<unsigned char>(h)%200 + 55;
pix.green = static_cast<unsigned char>(h>>8)%200 + 55;
pix.blue = static_cast<unsigned char>(h>>16)%200 + 55;
return pix;
}
else
{
// keep black pixels black
return rgb_pixel(0,0,0);
}
}
long nr () const { return img.nr(); }
long nc () const { return img.nc(); }
};
template <
typename image_type
>
const matrix_op<op_randomly_color_image<image_type> >
randomly_color_image (
const image_type& img
)
{
typedef op_randomly_color_image<image_type> op;
return matrix_op<op>(op(img));
}
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_RANDOMLY_COlOR_IMAGE_H__
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_RANDOMLY_COlOR_IMAGE_ABSTRACT_H__
#ifdef DLIB_RANDOMLY_COlOR_IMAGE_ABSTRACT_H__
#include "randomly_color_image_abstract.h"
#include "../hash.h"
#include "../pixel.h"
#include "../matrix.h"
namespace dlib
{
// ----------------------------------------------------------------------------------------
template <
typename image_type
>
const matrix_exp randomly_color_image (
const image_type& img
);
/*!
requires
- image_type is an implementation of array2d/array2d_kernel_abstract.h
- pixel_traits<image_type::type> must be defined
ensures
- randomly generates a mapping from gray level pixel values
to the RGB pixel space and then uses this mapping to create
a colored version of img. Returns a matrix which represents
this colored version of img.
- black pixels in img will remain black in the output image.
- The returned matrix will have the same dimensions as img.
!*/
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_RANDOMLY_COlOR_IMAGE_ABSTRACT_H__
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment