The Library
Help/Info
Current Release
Sourceforge
|
|
Last Modified:
Apr 28, 2008
|
|
Release notes
Release 17.3
Release date: Apr 28, 2008 Major Changes in this Release:
|
New Stuff:
- Added the vector_to_matrix() function.
- Added a cholesky_decomposition() function.
- Added the toggle_button GUI widget
- Added a default toggle button style as well as check box and
radio button styles.
- Added a single click event to list_box
- Added a save_file_box() and open_existing_file_box() function.
Non-Backwards Compatible Changes:
- Changed the check_box and radio_button widgets to be specializations of
the new toggle_button object. This is a nearly backwards compatible
change except that the events registered to check_box and radio_button
clicks must now take the form void event(toggle_button&) or
void event(void) instead of the previous void event(check_box&) and
void event(radio_button&).
- Removed the is_mouse_over bool from the button_style::draw_button()
function.
Bug fixes:
- Fixed a compiler error in mingw.
- Changed the preprocessor checks for the wchar_t overload of
is_built_in_scalar_type so that it works properly with visual studio.
Other:
- Added a Bayesian Network GUI that allows you to create a network
and serialize it to disk.
|
Release 17.2
Release date: Apr 21, 2008 Major Changes in this Release:
|
New Stuff:
- GUI Related
- Added the scrollable_region widget
- Added the text_grid widget
- Added an event to the text_field so you can tell when the
user modifies it.
- Added the fit_to_contents() function to the tabbed_display
widget.
- Bayesian Network Related
- Added the node_first_parent_assignment(), node_next_parent_assignment(),
and node_cpt_filled_out() functions.
Non-Backwards Compatible Changes:
- Reverted the change in 17.0 where I made drawable::lastx and
drawable::lasty not match the current location of the mouse inside
the on_mouse_move() event. I changed this back to how it was before,
so now lastx and lasty represent the most current record of where
the mouse is in *all* events.
- Changed the functions that control text color in the label and text_field
widgets to use rgb_pixel objects. Also added a function to set the
background color of a text_field.
Bug fixes:
- Fixed a bug in the bayesian_network_join_tree object that caused it to
compute incorrect results for some networks.
- GUI Related
- Fixed a minor bug in the cursor drawing of the text_field
gui widget.
- Fixed a bug in the compute_cursor_rect() function. It would return an
incorrectly positioned rectangle for 0 length strings.
- Changed the way wchar_t is handled in the serialize.h file. Now
everything should compile correctly in visual studio regardless of how
you set the /Zc:wchar_t compiler option.
- Fixed a bug in the menu_bar widget. One of the members wasn't being
initialized when it needed to be.
- Fixed a bug in the tabbed_display where it didn't redraw itself
correctly after it was moved by set_pos()
Other:
- Changed the xml parser so that it counts line numbers
from the start of the input stream instead of from the
root tag.
- Changed the xml parser so that you will only get the fatal_error
event once if it occurs.
|
Release 17.1
Release date: Apr 13, 2008 Major Changes in this Release:
|
New Stuff:
- Added a zoomable_region widget
- Added a directed_graph_drawer widget
Non-Backwards Compatible Changes:
- Changed the first_pixel argument of the draw_string() function
to be a rectangle like all the other draw functions now use.
Bug fixes:
- Fixed a bug in the tooltip widget that was triggered when calling
its member functions without calling set_tooltip_text(). This also
fixed a bug in the button object that triggered when calling some button
functions that referenced the tooltip widget.
- Fixed a problem in the draw_circle and draw_solid_circle functions.
They didn't draw themselves quite correctly in all cases.
Other:
|
Release 17.0
Release date: Apr 07, 2008 Major Changes in this Release:
|
New Stuff:
- Added a png_loader object
- GUI related
- Added a popup_menu widget
- Added a menu_bar widget
- Added a tooltip widget
- Added a user selectable style to the gui button.
- Added the draw_rounded_rectangle() and fill_gradient_rounded() functions
- Added the mouse_over_event object to the base_widgets and made the
button_action inherit from it.
- Added the drawable::next_free_user_event_number() function
- matrix and geometry:
- Added a size() function to matrix_exp and matrix_ref objects.
- Added a class that represents 2D points
- Added the following matrix functions:
- squared(), cubed(), get_rect(), a subm() function that takes
rectangles, and normlize()
- Added the following rectangle functions:
- area(), centered_rect(), translate_rect(), move_rect(), resize_rect(),
resize_rect_height(), resize_rect_width(), and nearest_point()
Non-Backwards Compatible Changes:
- Renamed atom() to array_to_matrix()
- Moved the rectangle object from the gui_core into a new geometry folder
(only matters if you were directly including the rectangle file)
- Moved the vector object into the geometry folder. Also removed the kernel_1a
stuff. So there is now only one possible vector implementation.
- Changed the default position for a rectangle to (0,0) instead of (1,1)
- Added edge data to the directed_graph. This breaks backwards compatibility
with the previous serialization format for directed_graphs.
- GUI related:
- Changed the base_window::on_keydown event signature so that it now
reports more keyboard modifier keys (e.g. alt)
- Made the functions for drawing on canvas objects take points and pixels
instead of just a bunch of integers. Also changed the order of the
arguments so that the canvas comes first, followed by the location
to draw on, then what to draw.
- Moved the canvas drawing functions into the gui_widgets/canvas_drawing.h
file.
- Modified the drawable_window so that the drawable::lastx and drawable::lasty
fields are updated after calls to on_mouse_move. This way the x and y that
go into the on_mouse_move actually tell you something.
Bug fixes:
- Fixed a bug in the floating point serialization code. It
didn't handle NaN or infinities correctly.
- Fixed a bug in the win32 version of the gui_core component. It was
possible that calling set_size(), set_pos(), or set_title() could cause
the program to deadlock.
- Made the load_bmp() function more robust in the face of weirdly
written BMP files.
- Modified the draw_circle() and draw_solid_circle() functions so that they
only touch each canvas pixel once. This avoids messing up alpha blending
if an rgb_alpha_pixel is used.
Other:
- Removed the old win32 only gui code in the dlib/gui folder.
- Changed the default GUI font to a nicer Sans Serif font
|
Release 16.5
Release date: Mar 04, 2008 Major Changes in this Release:
|
New Stuff:
- Added another constructor to the thread_function object.
Now it can take proper function objects as well as normal function
pointers.
- Added the probabilistic_decision_function object and svm_nu_train_prob()
function.
Non-Backwards Compatible Changes:
- Changed the svm train functions so that the cache_size argument
now measures the max number of megabytes of memory to use rather
than number of kernel matrix rows to cache. It's default
value is now 200MB.
- changed the type typedef in the SVM kernel function objects to
be named sample_type instead of type.
Bug fixes:
- Fixed a bug in the trim, rtrim, and ltrim functions. They
didn't return empty strings when the input string contained all
trim characters.
- Fixed a bug in the decision_function's copy constructor
Other:
- Added an optimization to the working set selection for the svm training code.
Now the algorithm will prefer to select indices that are in the kernel
matrix cache when possible.
- Fixed a problem with the chm documentation file where many of the links
didn't work.
- Made the support vector functions capable of operating with floats, doubles,
and long doubles instead of just the double type.
|
Release 16.4
Release date: Feb 22, 2008 Major Changes in this Release:
|
New Stuff:
- Added aversion of the draw_line() function for images.
- Added the atom(), rowm(), colm(), and subm() matrix functions.
- Added some push/pop_back() functions to the array object that are similar
to the ones in the std::vector.
- Added the std_vector_c class that wraps std::vector and checks its
function's preconditions.
- Added the polynomial_kernel object for use with the svm algorithm.
Non-Backwards Compatible Changes:
- Changed the svm_nu_cross_validate() function to return a vector
of both the +1 and -1 cross validation accuracies.
Bug fixes:
- Fixed a bug in the list_box that caused it to not hide itself properly
when told to do so.
- Fixed canvas::fill() gui function so that it should work right
on 64 bit platforms.
Other:
|
Release 16.3
Release date: Feb 12, 2008 Major Changes in this Release:
|
New Stuff:
- Added memory manager support to the matrix object.
Non-Backwards Compatible Changes:
- Made the assign_pixel() function saturate grayscale values bigger
than the target pixel type can handle. Previously it would just
truncate the numbers.
- Removed rand_kernel_1 and rand_kernel_2 because they gave very
inferior results compared to rand_kernel_3. I then renamed
rand_kernel_3 to rand_kernel_1.
- Renamed rand::get_random_number() to get_random_8bit_number() and also
added a get_random_16bit_number() and get_random_32bit_number()
- Added a checksum to compress_stream_kernel_1 and kernel_2. This
breaks backwards compatibility with the previous versions. That is,
the new implementations will complain that decompression fails if
you give them data compressed with the old non-checksum version of
the compression routines.
- Removed the width() and height() functions from the array2d object.
Now only the equivalent nc() and nr() member functions remain.
- Changed array2d::set_size(width,height) to set_size(num_rows, num_cols).
That is, I switched the order of the two arguments to this function.
The reason for doing this is to make it have the same form as the
set_size() member of the matrix object. This way the usage of the
set_size() member for these two very similar data structures is
the same. Hopefully this will reduce confusion rather than
make things worse.
Bug fixes:
- Fixed a bug in the image_widget. It didn't repaint the screen
all the way if you gave it a smaller image to display.
- Fixed a bug in the cat() function that caused the state of the queue
to be broken if you called cat with an empty queue.
- Made the queue_sort_1 use a better sorting algorithm. In particular, it
will not sort slowly for nearly sorted data.
- Fixed a bug in the queue_kernel_2 object that caused it to not work
correctly with the non-default memory managers.
Other:
- Added example code for the member_function_pointer as well as the matrix
object.
- Added some more regression tests and made some of the longer running
ones execute a lot quicker.
- Made the unit test suite easier to use. Now tests just throw an exception
to indicate an error rather than returning an error code.
- Added an example program for the multi-layer perceptron neural network.
|
Release 16.2
Release date: Jan 25, 2008 Major Changes in this Release:
|
New Stuff:
- Added the is_signed_type and is_unsigned_type templates
- Image Processing stuff
- Added the assign_all_pixels() function
- Added the assign_border_pixels() function
- Added the assign_pixel_intensity() function
- Added the auto_threshold_image() function
- Added the binary_union() function
- Added the edge_orientation() function
- Added the get_histogram() function
- Added the get_pixel_intensity() function
- Added the hysteresis_threshold() function
- Added the sobel_edge_detector() function
- Added the suppress_non_maximum_edges() function
- Added the zero_border_pixels() function
- Changed the pixel_traits structure so that it can support 8, 16, and 32
bit grayscale pixels.
Non-Backwards Compatible Changes:
- Added more fields to the pixel_traits template so if you had defined your
own pixel types you will need to update them.
Bug fixes:
- Fixed some compiler errors in Visual Studio 2008
Other:
- Generally tried to clean up the documentation and code in this release
|
Release 16.1
Release date: Jan 1, 2008 Major Changes in this Release:
|
New Stuff:
- Added the randomize_samples() function
- Added the set_main_font() and main_font() functions to the drawable object.
So now the drawable widgets can use a user provided font.
Non-Backwards Compatible Changes:
- Made the named_rectangle object a little easier to use. It now won't
let you size it so small that it doesn't display its entire name.
Bug fixes:
- Fixed a bug in the svm_nu_train() function that caused a crash with
some inputs.
- Fixed a compile time error that occurred when compiling the bayesian
network code in Mac OS X.
- Fixed a bug in the compute_cursor_pos() function where it would
return the incorrect value.
Other:
- Added an example showing how to use the svm functions.
|
Release 16.0
Release date: Dec 10, 2007 Major Changes in this Release:
|
New Stuff:
- Added the left_substr() and right_substr() functions
- Added the zero_extend_cast() function
- Added the unsigned_type template
- Added the uint8 typedef
- Bayesian Network related
- Added the assignment object
- Added the bayes_node object
- Added the joint_probability_table object
- Added the conditional_probability_table object
- Added the bayesian_network_gibbs_sampler object
This object implements an algorithm that performs approximate inference
in a Bayesian Network.
- Added the bayesian_network_join_tree object
This object implements an algorithm that performs exact inference
in a Bayesian Network.
- Set related
- Added the set_intersection_size() function
- Added the set_union() function
- Added the set_intersection() function
- Added the set_difference() function
- Graph related
- Added the graph object
- Added the is_graph template
- Added the is_directed_graph template
- Added the create_moral_graph() function
- Added the triangulate_graph_and_find_cliques() function
- Added the graph_contains_length_one_cycle() function
- Added the find_connected_nodes() function
- Added the graph_is_connected() function
- Added the is_clique() function
- Added the is_maximal_clique() function
- Added the copy_graph_structure() function
- Added the create_join_tree() function
- Added the is_join_tree() function
- Added the edge() function
- GUI related
- Added the base_window::get_display_size() function
- Added message_box_blocking()
- Added the bdf_font object which is capable of loading BDF font files into
the font object used by the gui_widgets
- Better Unicode support
- Added the basic_utf8_ifstream: An input stream that can read UTF-8 files
- Added serialization support for wchar_t and std::wstring
- Added the is_combining_char() function
- Added the convert_utf8_to_utf32() function
- Modified most of the string manipulation functions in dlib/string.h
to work with any kind of character type
- The gui widgets' font object now works with Unicode text (i.e. wchar_t
and unichar strings) as well as with normal char data.
Non-Backwards Compatible Changes:
- The dlib/all_console.cpp and dlib/all_gui.cpp files have been deprecated
in favor of a new file. Now to build with dlib you simply add
dlib/all/source.cpp to your project regardless of what type of project
you are building.
- The GUI program entry point, winmain(), has been removed. You can now use
the normal main() entry point or some other non-standard entry point
provided by your compiler.
- Renamed directed_graph::node::item to directed_graph::node::data
Bug fixes:
- Fixed some build issues in gcc 4.2 involving some uses of the std_allocator
- Fixed some build issues in Visual Studio involving the dir_nav component
and buidling with NO_MAKEFILE #defined.
- Moved the #define that disables the old WinSock API into the sockets cpp
file. This should avoid conflicts with people who are using the old WinSock
API.
- Changed the tuple template slightly to avoid a bug in Visual Studio 7.1
that caused a compile time error in some instances.
Other:
|
Old Release Notes
|