The Library
Help/Info
Current Release









Last Modified:
Jan 03, 2011

Image Processing



This page documents the functionality present in this library that deals with the management and manipulation of images. One thing to note is that there is no explicit image object. Instead, everything deals with array2d objects that contain various kinds of pixels.


Pixels
Image I/O
Keypoints and Descriptors
Edges and Thresholds
Miscellaneous
[top]

assign_all_pixels



This global function assigns all the pixels in an image a specific value.

Specification: dlib/image_transforms/assign_image_abstract.h
File to include: dlib/image_transforms.h

[top]

assign_border_pixels



This global function assigns all the pixels in the border of an image to a specific value.

Specification: dlib/image_transforms/assign_image_abstract.h
File to include: dlib/image_transforms.h

[top]

assign_image



This global function copies one image into another and performs any necessary color space conversions to make it work right.

Specification: dlib/image_transforms/assign_image_abstract.h
File to include: dlib/image_transforms.h

[top]

assign_image_scaled



This global function copies one image into another and performs any necessary color space conversions to make it work right. Additionally, if the dynamic range of the source image is too big to fit into the destination image then it will attempt to perform the appropriate scaling.

Specification: dlib/image_transforms/assign_image_abstract.h
File to include: dlib/image_transforms.h

[top]

assign_pixel



assign_pixel() is a templated function that can assign any pixel type to another pixel type. It will perform whatever conversion is necessary to make the assignment work. (E.g. color to grayscale conversion)

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

assign_pixel_intensity



assign_pixel_intensity() is a templated function that can change the intensity of a pixel. So if the pixel in question is a grayscale pixel then it simply assigns that pixel the given value. However, if the pixel is not a grayscale pixel then it converts the pixel to the HSI color space and sets the I channel to the given intensity and then converts this HSI value back to the original pixel's color space.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

auto_threshold_image



This global function performs a simple binary thresholding on an image with a user supplied threshold. However, instead of taking a user supplied threshold it computes one from the image using k-means clustering.

Specification: dlib/image_transforms/thresholding_abstract.h
File to include: dlib/image_transforms.h

[top]

bgr_pixel



This is a simple struct that represents a BGR colored graphical pixel.

The difference between this object and the rgb_pixel is just that this struct lays its pixels down in memory in BGR order rather than RGB order. You only care about this if you are doing something like using the cv_image object to map an OpenCV image into a more object oriented form.



Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

binary_close



This global function performs a morphological closing on an image.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_complement



This global function computes the complement of a binary image.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_difference



This global function computes the difference of two binary images.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_dilation



This global function performs the morphological operation of dilation on an image.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_erosion



This global function performs the morphological operation of erosion on an image.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_intersection



This global function computes the intersection of two binary images.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_open



This global function performs a morphological opening on an image.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

binary_union



This global function computes the union of two binary images.

Specification: dlib/image_transforms/morphological_operations_abstract.h
File to include: dlib/image_transforms.h

[top]

compute_dominant_angle



Computes and returns the dominant angle (i.e. the angle of the dominant gradient) at a given point and scale in an image. This function is part of the main processing of the SURF algorithm.

Specification: dlib/image_keypoint/surf_abstract.h
File to include: dlib/image_keypoint.h

[top]

compute_surf_descriptor



Computes the 64 dimensional SURF descriptor vector of a box centered at a given center point, tilted at a given angle, and sized according to a given scale.

Specification: dlib/image_keypoint/surf_abstract.h
File to include: dlib/image_keypoint.h

[top]

cv_image



This object is meant to be used as a simple wrapper around the OpenCV IplImage struct. Using this class template you can turn an IplImage object into something that looks like a normal dlib style image object.

So you should be able to use cv_image objects with many of the image processing functions in dlib as well as the GUI tools for displaying images on the screen.



Specification: dlib/opencv/cv_image_abstract.h
File to include: dlib/opencv.h

[top]

draw_line



This global function draws a line onto an image.

Specification: dlib/image_transforms/draw_abstract.h
File to include: dlib/image_transforms.h

[top]

edge_orientation



This global function takes horizontal and vertical gradient magnitude values and returns the orientation of the gradient.

Specification: dlib/image_transforms/edge_detector_abstract.h
File to include: dlib/image_transforms.h

[top]

equalize_histogram



This global function performs histogram equalization on an image.

Specification: dlib/image_transforms/equalize_histogram_abstract.h
File to include: dlib/image_transforms.h

[top]

get_histogram



This global function computes an image's histogram and returns it in the form of a column or row matrix object.

Specification: dlib/image_transforms/equalize_histogram_abstract.h
File to include: dlib/image_transforms.h

[top]

get_interest_points



This function extracts interest points from a hessian_pyramid.

Specification: dlib/image_keypoint/hessian_pyramid_abstract.h
File to include: dlib/image_keypoint.h

[top]

get_pixel_intensity



get_pixel_intensity() is a templated function that returns the grayscale intensity of a pixel. If the pixel isn't a grayscale pixel then it converts the pixel to the HSI color space and returns the obtained intensity value.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

get_surf_points



This function runs the complete SURF algorithm on an input image and returns the points it found. For a description of what exactly the SURF algorithm does you should read the following paper:
SURF: Speeded Up Robust Features By Herbert Bay, Tinne Tuytelaars, and Luc Van Gool

Also note that there are numerous flavors of the SURF algorithm you can put together using the functions in dlib. The get_surf_points() function is just an example of one way you might do so.



Specification: dlib/image_keypoint/surf_abstract.h
File to include: dlib/image_keypoint.h
Code Examples: 1

[top]

haar_x



This is a function that operates on an integral_image and allows you to compute the response of a Haar wavelet oriented along the X axis.

Specification: dlib/image_transforms/integral_image_abstract.h
File to include: dlib/image_transforms.h

[top]

haar_y



This is a function that operates on an integral_image and allows you to compute the response of a Haar wavelet oriented along the Y axis.

Specification: dlib/image_transforms/integral_image_abstract.h
File to include: dlib/image_transforms.h

[top]

hessian_pyramid



This object represents an image pyramid where each level in the pyramid holds determinants of Hessian matrices for the original input image. This object can be used to find stable interest points in an image.

This object is an implementation of the fast Hessian pyramid as described in the paper:
SURF: Speeded Up Robust Features By Herbert Bay, Tinne Tuytelaars, and Luc Van Gool
This implementation was also influenced by the very well documented OpenSURF library and its corresponding description of how the fast Hessian algorithm functions:
Notes on the OpenSURF Library by Christopher Evans


Specification: dlib/image_keypoint/hessian_pyramid_abstract.h
File to include: dlib/image_keypoint.h

[top]

hog_image



This object is a tool for performing the image feature extraction algorithm described in the following paper:
Histograms of Oriented Gradients for Human Detection by Navneet Dalal and Bill Triggs


Specification: dlib/image_keypoint/hog_abstract.h
File to include: dlib/image_keypoint.h

[top]

hsi_pixel



This is a simple struct that represents an HSI colored graphical pixel.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

hysteresis_threshold



This global function performs hysteresis thresholding on an image.

Specification: dlib/image_transforms/thresholding_abstract.h
File to include: dlib/image_transforms.h

[top]

integral_image



This object is an alternate way of representing image data that allows for very fast computations of sums of pixels in rectangular regions. To use this object you load it with a normal image and then you can use the get_sum_of_area() member function to compute sums of pixels in a given area in constant time.

Specification: dlib/image_transforms/integral_image_abstract.h
File to include: dlib/image_transforms.h

[top]

interest_point



This is a simple struct used to represent the interest points returned by the get_interest_points function.

Specification: dlib/image_keypoint/hessian_pyramid_abstract.h
File to include: dlib/image_keypoint.h

[top]

jpeg_loader



This object loads a JPEG image file into an array2d of pixels.

Note that you must define DLIB_JPEG_SUPPORT if you want to use this object. You must also set your build environment to link to the libjpeg library. However, if you use CMake and dlib's default CMakeLists.txt file then it will get setup automatically.



Specification: dlib/image_loader/jpeg_loader_abstract.h
File to include: dlib/image_io.h

[top]

load_bmp



This global function loads a MS Windows BMP file into an array2d of pixels.

Specification: dlib/image_loader/image_loader_abstract.h
File to include: dlib/image_io.h
Code Examples: 1

[top]

load_dng



This global function loads a dlib DNG file (a lossless compressed image format) into an array2d of pixels.

Specification: dlib/image_loader/image_loader_abstract.h
File to include: dlib/image_io.h

[top]

pixel_traits



As the name implies, this is a traits class for pixel types. It allows you to determine what sort of pixel type you are dealing with.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

png_loader



This object loads a Portable Network Graphics (PNG) image file into an array2d of pixels.

Note that you must define DLIB_PNG_SUPPORT if you want to use this object. You must also set your build environment to link to the libpng library. However, if you use CMake and dlib's default CMakeLists.txt file then it will get setup automatically.



Specification: dlib/image_loader/png_loader_abstract.h
File to include: dlib/image_io.h

[top]

pyramid_down



This is a simple function object to help create image pyramids.

Specification: dlib/image_transforms/image_pyramid_abstract.h
File to include: dlib/image_transforms.h

[top]

rgb_alpha_pixel



This is a simple struct that represents an RGB colored graphical pixel with an alpha channel.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

rgb_pixel



This is a simple struct that represents an RGB colored graphical pixel.

Specification: dlib/pixel.h
File to include: dlib/pixel.h

[top]

save_bmp



This global function writes an image out to an ostream as a MS Windows BMP file.

Specification: dlib/image_saver/image_saver_abstract.h
File to include: dlib/image_io.h

[top]

save_dng



This global function writes an image out to an ostream as a dlib DNG file (a lossless compressed image format).

Specification: dlib/image_saver/image_saver_abstract.h
File to include: dlib/image_io.h

[top]

sobel_edge_detector



This global function performs spatial filtering on an image using the sobel edge detection filters.

Specification: dlib/image_transforms/edge_detector_abstract.h
File to include: dlib/image_transforms.h
Code Examples: 1

[top]

spatially_filter_image



This global function performs spatial filtering on an image with a user supplied filter.

Specification: dlib/image_transforms/spatial_filtering_abstract.h
File to include: dlib/image_transforms.h

[top]

suppress_non_maximum_edges



This global function performs non-maximum suppression on a gradient image.

Specification: dlib/image_transforms/edge_detector_abstract.h
File to include: dlib/image_transforms.h
Code Examples: 1

[top]

surf_point



This is a simple struct used to represent the SURF points returned by the get_surf_points function.

Specification: dlib/image_keypoint/surf_abstract.h
File to include: dlib/image_keypoint.h
Code Examples: 1

[top]

threshold_image



This global function performs a simple binary thresholding on an image with a user supplied threshold.

Specification: dlib/image_transforms/thresholding_abstract.h
File to include: dlib/image_transforms.h

[top]

zero_border_pixels



This global function zeros the pixels on the border of an image.

Specification: dlib/image_transforms/assign_image_abstract.h
File to include: dlib/image_transforms.h