First stab at convolution tests includes cases with the identity kernel.
Move `pixel`-s streaming facility used by Boost.Test (required by
`BOOST_TEST` macro) to the common header for re-use in other tests.
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.
The following files have been deleted:
- doc/adobe_logo.gif
- doc/adobe_source.css
- doc/boost.png
- doc/build.sh
- doc/rst.css
- doc/shorten_file_name.sh
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.
Attempt to fix random failures suddenly happening on CircleCI,
likely due to memory issues:
g++: internal compiler error: Killed (program cc1plus)
[skip travis]
[skip azp]
The test also illustrates and verifies that the `static_transform` is
constrained by the size of destination color base. That is, it is
applicable if the source color base has number of elements equal-to or
greater-than the destination color base.
* Simple implementation of lanczos scaling
* Simple implementation of lanczos scaling
* Refactor lanczos into separate header
This commit moves the algorithm
into its own header. It also provides
templated interface now, utilizing
a little bit of decltype and declval
to resolve types for lambdas and stuff
* Zero pixel at start of lanczos_at
This commit fixes a possible bug and
fixes some style incosistencies
* Improve documentation for Lanczos
This commit adds documentation which
describes when to use the algorithm,
a brief description of how it is
supposed to work, and some caution
on the quality of the output
* Address style issues and fix warnings
This commit fixes a style issue realted
to namespace declaration and
fixes a warning in added zeroing of
a pixel at start of lanczos
* text-realign function arguments
* fix formatting issues
* Implement handful of sanity tests
This commit introduces a couple of
sanity tests such as black image
scaling to black image, and lanczos
response being 0 at x = 0
* bracket on newline for for loops
* add lanczos scaling to tests
* more precision in lanczos calculation
This commit migrates integral values
to double precision and uses PI
provided by boost.Math. These changes
solve downscaled image being darker
* Simple implementation of lanczos scaling
* Refactor lanczos into separate header
This commit moves the algorithm
into its own header. It also provides
templated interface now, utilizing
a little bit of decltype and declval
to resolve types for lambdas and stuff
* Zero pixel at start of lanczos_at
This commit fixes a possible bug and
fixes some style incosistencies
* Improve documentation for Lanczos
This commit adds documentation which
describes when to use the algorithm,
a brief description of how it is
supposed to work, and some caution
on the quality of the output
* Address style issues and fix warnings
This commit fixes a style issue realted
to namespace declaration and
fixes a warning in added zeroing of
a pixel at start of lanczos
* text-realign function arguments
* fix formatting issues
* Implement handful of sanity tests
This commit introduces a couple of
sanity tests such as black image
scaling to black image, and lanczos
response being 0 at x = 0
* bracket on newline for for loops
* add lanczos scaling to tests
* more precision in lanczos calculation
This commit migrates integral values
to double precision and uses PI
provided by boost.Math. These changes
solve downscaled image being darker
* Add Jamfile for ip test directory
Add Jamfile for image_processing
test directory and build-project
from outer test directory
* Add IP test directory to ci build
This commit adds a line at the end
of .ci/build-and-test.sh to include
image processing tests in CI builds
* Remove redundant lines from Jamfile
Simplify Jamfile at
test/image_processing
* Rewrite range condition
x > -a && x < a exchange with
-a < x && x < a in lanczos
* Add newline at the end of files
* Add math and lexical_cast to get-boost
As math and lexical_cast are used
in lanczos scaling, both were added
to get-boost
* Revert "Add newline at the end of files"
Since Boost.Math.Constants is
overengineered for use case by
requiring Boost.lexical_cast or
a global define, it is removed
This reverts commit 0743ab072ff3455421853697f7f46aee7d22382c.
* Define pi and use in lanczos
Value of pi is moved out into detail
and used by lanczos
* Move image_processing to test/core
* formatting fixes
* Adjust CMakeLists for moved IP tests
This commit removes image_processing as
subdirectory from test/ and adds to
test/core's CMakeLists
* Remove unused from get-boost
Since lanczos scaling no longer uses
boost.math.constants, lexical_cast
has been removed as well
* Downgrade math to transitive dep
This is a stray change left from
my incorrect resetting of the HEAD
on lanczos branch
* Remove unnecessary includes
io includes are not used in lanczos
scaling test, and they break build
* Fix ambiguous overload issue for min
Since width() and height() now return
std::ptrdiff_t, call to std::min needs
a cast. There was also shadowing of
pi declared in detail/math.hpp,
which is also fixed
* Apply mloskot's patch
The patch provided by Mateusz changes
all usages of long int into ptrdiff_t,
which is returned by width() and
height() functions of image_view
* Apply .editorconfig rules
This commit is a simple reformat of
affected files
* Use aliases x_coord_t and y_coord_t
The change converges integer handling
in arguments, using view' type aliases.
View arguments have to come first to
avoid non-deduced context problem.
Also replaced long int with ptrdiff_t
in lanczos, in numeric.hpp file
* Apply alias usage for rest of the code
Some places with ptrdiff_t were
left out from previous commit, so they
are changed in this one. Plus a fix for
max call being ambiguous.
* Replace all literals with casted vars
This commit takes extreme stance of
never using an integer literal due to
problems in ambiguity of deduction of
min and max functions
* Fix unenclosed foreach
During rebase of gsoc2019 onto develop,
I didn't enclose first foreach with
matching endforeach, hence tests failed
Avoid Clang flooding with non-disableable warnings like:
T does not declare any constructor to initialize its non-modifiable members
when compiling with concepts check enabled.
Bug 41759: `warn_no_constructor_for_refconst` can not be disabled (Boost.ConceptCheck)
https://bugs.llvm.org/show_bug.cgi?id=41759
Apparently, for some not entirely clear reasons, possibly historical
use of `.vcproj`, LibRaw uses (not defines!) `WIN32` macro, instead of
C standard compliant `_WIN32` common to majority of compilers on Windows.
This patch is required if GIL IO is used with Boost.Build or custom
Makefile, without this custom `WIN32` hand-rolled in build configuration.
Hopefully, LibRaw may accept some clean up for this in near future:
https://github.com/LibRaw/LibRaw/pull/206
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).
As tests seem to confirm, Travis may build forks auto-selecting
Xenial or Trusty. For example, Xenial for boostorg/gil and
Trusty for mloskot/gil.
[skip azp]