Support construction from step_size, step_count, and a function for angles
Implement angle and radious version of Hough line transform and adds a demo
with static line that goes over secondary diagonal.
Implement incremental line raster
Implement naive line raster
Implement Bresenham line raster
Leave only Bresenham line rasterization
Naive and incremental algorithms were removed because they are supposed
to produce the same results anyway.
The reason for diverging results is inaccuracy of floating point numbers
Add circle rendering through trigonometric functions, using
arctan(1 / (radius + 1)) as minimal angle step.
Trigonometric circle rasterizer does not follow circle equation, but still
produces very round shapes.
A new testing methodology needs to be devised for this rasterizer.
The new version accepts start and points inclusively and tries to use
canonic representation during computations.
Slope decided to be is (diff_y + 1) / (diff_x + 1).
A new histogram class proposed with close suport for gil
image constructs.
Shift the stl support implmentation to extension to
serve as example for overloading fill_histogram.
Add cumulative histogram and histogram normalization.
Co-authored-by: debabrata1 <debabrata@goodhealthapp.com>
Motivation is to:
- use on simpler and light test framework,
- eliminate dependency on libraries like Boost.MPL,
- achieve faster compilation times for CI builds (20% seems feasible)
- have test programs easy to run and debug
- avoid macros
Remove outdated FIXME-s for bugs that have been already fixed.
Fix off-by-one bug in test/core/test_fixture.hpp generators.
Minor corrections and tidying up.
Add missing test assertions to numeric extension tests.
Fixes#458
Since `std::uninitialized_fill` performs a placement new on each
element in the range, it is important to ensure core and packed
pixel types behave correctly.
Split general purpose test fixtures into core/test_fixture.hpp.
Split header tests accordingly i.e. test core headers as part of
core tests, numeric extension headers as part of numeric tests, etc.
It extends the convention of sub-directories already established in
`include/boost/gil` directory. It is sensible to follow it in other
areas of the source tree (i.e. `test/`, `doc/` and `benchmark/`).
Another important reason to move the tests is to enable removal of
the top-level `Jamfile` with all its definitions of test-specific
requirements.
The top-level `Jamfile` is not advised, especially if it specifies
build requirements like C++ language version.
Those affect non-tests builds e.g. documentation, causing failures
during generation of HTML documentation (leads to missing docs).