Motivation:
- GIL is part of Boost collection, so Boost version is sufficient
- GIL version makes little sense unless GIL becomes independent
- Two distinct version numbers, Boost's and GIL's, are confusing.
- Role of GIL's version number is not documented thus not entirely clear
The removal was discussed and agreed upon in this thread
https://lists.boost.org/boost-gil/2019/11/0346.php
* Implement Sobel and Scharr operators
This commit adds Sobel and Scharr
operators with support for 0th and 1st
degrees with other degrees planned for
later
* Migrate and fix Harris example
Generate Harris entries now uses
signed image view.
The Harris corner detector example
now uses the Scharr filter generator
and convolve_2d to reduce amount
of code needed.
* Fix and migrate Hessian example
The Hessian example now uses signed
image views and uses newly added kernel
generators to compute gradients
* Fix Harris and Hessian tests
The tests broke due to migration to
signed views in algorithms, but tests
were not adjusted
* Fix Jamfile for example/sobel_scharr.cpp
* Cosmetic changes
* Commented out fail tests
* Fixed pixel16 used in image16s
In Harris and Hessian tests, unsigned
pixel values was used to construct
signed image, which was causing
appveyor to error out.
* Reenable failing targets
* Unify kernel generator interface
This commit makes all kernel
generator functions to return kernel_2d
and adapts dependant threshold
function to use the new interface
* Migrate Hessian and Harris tests
Migrate Hessian and Harris tests to new
interface for kernel generators
* Migrate Harris and Hessian examples
Harris and Hessian examples now use
new interface for kernel generation
* Migrate simple_kernels tests
simple_kernels are now using kernel_2d
interface
* Add missing return
Normalized mean generation had missing
return at the end of the function
* Adapt code to namespace move
This commit reacts to kernel_2d,
convolve_2d being moved to
namespace detail
* Hide convolve_1d and convolve_2d in namespace detail
* Hide kernel_2d in namespace detail.
* Tidy up naming of horizontal/vertical to y/x for kernel center.
Following @lpranam comments on planned changes to convolve_2d,
which will not be ready for Boost 1.72,
@mloskot proposed to hide the function as implementation detail,
https://lists.boost.org/boost-gil/2019/10/0316.php,
until it is ready and @stefanseefeld agreed on the proposal,
https://lists.boost.org/boost-gil/2019/10/0320.php.
* Hessian plain determinant
This commit partially implements
Hessian corner detector, but only
uses determinant as Hessian response
* Implement full Hessian corner detector
This commit complements last one
by summing in a window and applying
det - k * trace * trace formula to
final Hessian response
* Add docs and make code align with docs
This commit adds docs to new functions,
and makes function and variable names
align with docs to not confuse readers
* Use determinant as response function
A-KAZE uses only determinant in it's
response, and since for now Hessian
is only a mean to advance A-KAZE
implementation, response function is
adjusted to use only determinant
* Create simple test for Hessian detector
This commit adds an s at the end of
function name to make it uniform with
another detector, and adds a simple
test for sanity check
* Improve documentations for d params
dx and similar naming seems to be
confusing, improved documentation
to explain the naming convention
* Address minor comments about style
* Address type based issues
Mostly changes to constness and
integral types, with small cosmetic
changes mixed in
* Fix typo and address review comment
Fixes typo in call for Hessian and
addresses a review comment about
replacing multiple exact indexing
calls to one with a reference
* Reorder includes in Hessian example
* Address review comments
Add literature reference to luminosity
computation, and perform some cosmetic
changes.
* Restore previous state of Harris
This is a fresh start of branch
Harris with manual copying and
placement of code from previous
versions
* Use supplied weights in Harris
Weights passed as arguments were not
used prior to this commit
* Address review comments
Mostly moving brackets and adding
const, but also address MSVC's
max macro
* Make namespace qualification consistent
In file numeric.hpp, there is
full qualification, but harris.hpp
didn't have full qualification,
thus full qualification is added to
harris.hpp
* Add copyright and license notice
Add static assertions to verify channel types are convertible to
expected result type.
Add new and update existing Doxygen comments describing interfaces in
`extension/numeric/channel_numeric_operations.hpp`.
* Implement generation of simple kernels
This commits implements mean and
Gaussian kernel generators,
roughly documents them, and has
tests. But tests for Gaussian have
accuracy problem
* Use difference for testing Gaussian
This commit applies percentage based
difference check on generation of
Gaussian kernels, as exact values are
dependant on platform. The error margin
is set to 5% in this commit
* Remove debugging code
In simple_kernels.cpp, there was
some debugging code, mostly streams
related stuff and commented out code,
which is now removed.
* Address review comments
This commit adds inline to kernel
generator functions, uses
std::ptrdiff_t instead of long int,
resolves some conversion warnings
and does small cosmetic changes
* Remove useless iostream include
There was stray include from debugging
code, now removed
* Use \code and \endcode for formula
This commit applies formatting to
formula of normalized mean
* Change are_equal to is_equal
Change a function name in
simple_kernels.cpp test
* Remove redundant function
In simple_kernels.cpp test there was
a function that was not used at all,
now removed
* Cosmetic changes
Mostly opening brackets moved
Avoid discouraged naming with leading underscore for class member variables.
Rename cryptic `_p` member variable as `y_pos_` to clearly indicate its
purpose as current position of `y_iterator`.
Rename abbreviated template parameters to more self-descriptive names (e.g.
Deref to DerefFn to indicate it is type of a function object).
Remove superfluous `public` keywords from base types fo struct-s.
Tidy up formatting and code flow for readability.
Fixes compiler warning:
typedef `using result_channel_t = typename boost::gil::channel_type<XIt>::type`
locally defined but not used [-Wunused-local-typedefs]
Fixes annoying compiler warnings that implicit conversion from `y_coord_t`
`{aka long int}` to `int` may change value `[-Wconversion]`.
Add missing #include <type_traits>.
Rename `rr` to `y` to clarify it is vertical indexing of pixel lines,
it also indicates the correspondence with y_coord_t better.
Rename CamelCase, incorrectly introduced in 055ee947a0,
for using-declared type aliases to `lower_case_t` convention.
Add Doxygen comments and placeholders for documentation content to fill.
Tidy up formatting and code flow for readability.
These assertions validating user-specified x and y values for pixel
positions at run-time should help GIL users to catch basic mistakes
as early as possible, especially during complex processing algorithms.
(Easy to make a mistake calling `view(y, x)` instead of `view(x, y)`!)
The checks are deliberately implemented using assertions as debug-only
tools disabled in `NDEBUG` builds, and not as exceptions to avoid
potentially significant performance hit at run-time in optimised builds.
Add `TODO` comments where certain assumptions are not immediately
obvious and may require further testing to clarify and documenting.
For example, what are constraints on requesting locators with
negative offsets using `image_view::xy_at`?
Tidy up image.hpp and image_view.hpp formatting vertically rather than
horizontally with very long lines, align return statements to left for
immediate display what is calculated and returned, instead of hiding it
behind the right margin.
- Tidy up formatting and code flow for readability
- Rename parameters for clarify, avoiding abbreviations
- Rename typedefs in CamelCase style instead of UPPER_CASE
- Add Doxygen comments and placeholders for documentation content to fill
Align with `subsampled_view` overloads accepting `point_t` and `coord_t`
Both types are based on `std::ptrdiff_t`. Fixes compilation warnings.
Tidy up `subimage_view` and `subsampled_view` with trailing return.
Add tests for `subimage_view` in core and dynamic_image extension.
(First tests for the dynamic_image, hurray! :))
Add explicit cast to double in division operator for point<T> to
fix compilation warnings.
Add basic run-time test of `planar_rgba_view` function.
Add missing includes of `pixel.hpp` and `planar_pixel_reference.hpp`
also required for successful compilation.
Fixes#331
Since use of `gil_function_requires` check is optional, it can be
disabled by not defining `BOOST_GIL_USE_CONCEPT_CHECK`, we need
a mandatory form of the check.
Add compile-time test verifying the static assertion.
Closes#323
Add missing `inline` specifier for tiny functions.
Add missing include guards.
Add missing copyright notice.
Remove superfluous `boost::gil::` namespace qualifiers.
Make use of 100 characters line length limit:
- Remove superfluous newlines to avoid too much of vertical stretch.
- Tidy up Doxygen comments.
Work around clash between min/max macros defined in Windows SDK
headers and C++ functions like std::min/max, std::numeric_min/max,
without requiring users to #define NOMINMAX.
Add copy assignment operator to memory_based_2d_locator and iterator_from_2d.
Add copy constructor to image_view which already has copy assignment operator.
Fix GCC 9 warning -Wdeprecated-copy that:
"implicit declaration of a copy constructor or copy assignment operator
is deprecated if the class has a user-provided copy constructor or
copy assignment operator, in C++11 and up."
Use of `std::extent` was introduced in PR #200 but it turns out as
not applicable for `std::array` or derived types (e.g. `kernel_1d_fixed`).
This led to obtaining invalid size of `kernel_1d_fixed` and erroneous
results of the rows and columns convolution.
This change replaces `std::extent` with new public constant member
`kernel_1d_fixed::static_size`.
Since `kernel_1d_fixed` is derived from `std::array`, the Alternative
could be to use `std::tuple_size` specialization for `std::array`.
Add static assertion to require that kernel size must be odd to
ensure validity at the center.