Skip to content

Commit a76525b

Browse files
committed
Updated for 3.4.1.
1 parent 7230fb7 commit a76525b

6 files changed

+152
-16
lines changed

_changelogs/diplib_3.4.1.md

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
layout: post
3+
title: "Changes DIPlib 3.4.1"
4+
---
5+
6+
## Changes to *DIPlib*
7+
8+
### Changed functionality
9+
10+
- `dip::Image::At( dip::Image mask )` will throw an exception if the mask has no pixels set. This ensures that a
11+
`dip::Image::View` always selects at least one pixel, it no longer is possible to create an empty `View` object.
12+
13+
- `dip::CopyFrom( dip::Image const& src, dip::Image& dest, dip::Image const& srcMask )` returns a raw image
14+
instead of trying to allocate space for 0 pixels if `srcMask` has no pixels set. Forging an image with 0 pixels
15+
is not possible.
16+
17+
- `dip::ImageRead()` produces a better error message if the file doesn't exist.
18+
19+
- Improved error messages when reading or writing JPEG files.
20+
21+
- `dip::DrawPolygon2D()` no longer requires that all vertices be within the image for the non-filled case (the filled
22+
case never required it).
23+
24+
### Bug fixes
25+
26+
- `dip::Image out = view` threw an exception with the message "Sizes must be non-zero and no larger than
27+
9223372036854775807" if the `view` was empty. This could happen if `view` was created using a mask with
28+
no pixels set. This issue has been corrected by making it impossible to create an empty `View` object.
29+
Note that `out = img.At( img < 0 )` still throws an exception if `img` has no negative values, because
30+
the indexing operation is now illegal. The exception thrown now, "The mask image selects no pixels",
31+
is more useful.
32+
33+
- The `dip::FileInformation` data structure crated for a NPY file reported the file type was `"NYP"`.
34+
35+
- Third and fourth order cubic spline interpolation (methods `"3-cubic"` and `"4-cubic"`) now always use
36+
double-precision floats internally for computation. The improved precision is necessary to evaluate the third-order
37+
polynomials with sufficient precision, the errors could be seen in flat areas of the rescaled image.
38+
39+
- `dip::Sharpen()` and `dip::UnsharpMask()` didn't work correctly when the input and output images were the same.
40+
41+
- `dip::BesselJN( 0, 0 )` returned 0.0 instead of 1.0.
42+
43+
- `dip::BinaryPropagation` unwittingly changed behavior in 3.4.0: When `iterations` was 0, the seed pixels outside
44+
the mask made it into the output image, but shouldn't have. See [issue #135](https://github.com/DIPlib/diplib/issues/135).
45+
46+
47+
48+
49+
## Changes to *DIPimage*
50+
51+
### Changed functionality
52+
53+
None, but see changes to *DIPlib*.
54+
55+
### Bug fixes
56+
57+
None, but see bugfixes to *DIPlib*.
58+
59+
60+
61+
62+
## Changes to *PyDIP*
63+
64+
### Changed functionality
65+
66+
- Significantly faster load times ([PR #127](https://github.com/DIPlib/diplib/pull/127), [PR #128](https://github.com/DIPlib/diplib/pull/128)).
67+
The undocumented variable `dip.hasDIPjavaio` no longer exists. The *DIPjavaio* module is loaded when first used.
68+
69+
- Updated the version of Bio-Formats that is downloaded with `python -m diplib download_bioformats` to 7.0.0.
70+
71+
(See also changes to *DIPlib*.)
72+
73+
### Bug fixes
74+
75+
None, but see bugfixes to *DIPlib*.
76+
77+
78+
79+
80+
## Changes to *DIPviewer*
81+
82+
None.
83+
84+
85+
86+
87+
## Changes to *DIPjavaio*
88+
89+
### Bug fixes
90+
91+
- Images of more than 2 GB can now be read using Bio-Formats. But each single x-y plane still must be smaller than 2 GB.
92+
See [issue #133](https://github.com/DIPlib/diplib/issues/133).
93+
94+
- When reading through Bio-Formats, pixel sizes in reported in micron would be ignored with a warning.
95+
See [issue #133](https://github.com/DIPlib/diplib/issues/133).

_posts/2021-09-24-Release-v3.1.0.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ one day we will.
3636
Please build from source. This should be a lot easier for you than messing
3737
with pre-compiled libraries and their linker compatibility issues.
3838

39-
Though there should not need to change any of your code to use the new version of library,
40-
you will have to re-compile it, since some function signatures were changed in backwards-compatible ways.
39+
Though there should be no need to change any of your code to use the new version of library,
40+
you might have to re-compile it, since some header files have changed.

_posts/2022-02-08-Release-v3.2.0.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ If you don't want to use *CMake*, then see
4747
[here](https://github.com/DIPlib/diplib/blob/master/INSTALL.md#linking-against-the-library) for
4848
instructions on which preprocessor macros to define.
4949

50-
Though there should not need to change any of your code to use the new version of library,
51-
you will have to re-compile it, since some function signatures were changed in backwards-compatible ways.
50+
Though there should be no need to change any of your code to use the new version of library,
51+
you might have to re-compile it, since some header files have changed.

_posts/2022-05-21-Release-v3.3.0.md

+4-6
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,8 @@ but this can be easily fixed. See the change log linked above before upgrading.
4040

4141
## For use from MATLAB
4242

43-
Get a *DIPimage* installer [on GitHub](https://github.com/DIPlib/diplib/releases).
44-
45-
If there is no installer for your platform or your version of MATLAB, you will need to build from source.
46-
This is not complicated. We have
43+
We haven't created any pre-built installers for this version of DIPlib.
44+
You will need to build from source. This is not complicated. We have
4745
[simple and clear instructions available](https://github.com/DIPlib/diplib/blob/master/INSTALL.md).
4846

4947
## For use from C++
@@ -56,5 +54,5 @@ If you don't want to use *CMake* for your project, then see
5654
[here](https://github.com/DIPlib/diplib/blob/master/INSTALL.md#linking-against-the-library) for
5755
instructions on which preprocessor macros to define.
5856

59-
Though there should not need to change any of your code to use the new version of library,
60-
you will have to re-compile it, since some function signatures were changed in backwards-compatible ways.
57+
Though there should be no need to change any of your code to use the new version of library,
58+
you might have to re-compile it, since some header files have changed.

_posts/2022-12-08-Release-v3.4.0.md

+4-6
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,8 @@ of Python, you will need to build from source. This is not complicated. We have
3030

3131
## For use from MATLAB
3232

33-
Get a *DIPimage* installer [on GitHub](https://github.com/DIPlib/diplib/releases).
34-
35-
If there is no installer for your platform or your version of MATLAB, you will need to build from source.
36-
This is not complicated. We have
33+
We haven't created any pre-built installers for this version of DIPlib.
34+
You will need to build from source. This is not complicated. We have
3735
[simple and clear instructions available](/diplib-docs/building_diplib.html).
3836

3937
## For use from C++
@@ -46,5 +44,5 @@ If you don't want to use *CMake* for your project, then see
4644
[here](/diplib-docs/building_diplib.html#linking_diplib) for
4745
instructions on which preprocessor macros to define.
4846

49-
Though there should not need to change any of your code to use the new version of library,
50-
you will have to re-compile it, since some function signatures were changed in backwards-compatible ways.
47+
Though there should be no need to change any of your code to use the new version of library,
48+
you might have to re-compile it, since some header files have changed.

_posts/2023-10-13-Release-v3.4.1.md

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
layout: post
3+
title: "Release 3.4.1"
4+
date: 2023-10-13
5+
categories: news
6+
author: "Cris Luengo"
7+
---
8+
9+
*DIPlib* 3.4.1 was released today. It includes some assorted improvements and bug fixes.
10+
Please see the [change log](/changelogs/diplib_3.4.1.html) for details.
11+
12+
We recommend that all users upgrade to the new release.
13+
14+
---
15+
16+
## For use from Python
17+
18+
Install through [PyPI](https://pypi.org/project/diplib/) using
19+
20+
pip install diplib
21+
22+
We support Python 3.8 through 3.11, on Windows, Linux and macOS.
23+
24+
All of these are 64-bit versions only. If you use a different platform, or a different version
25+
of Python, you will need to build from source. This is not complicated. We have
26+
[simple and clear instructions available](/diplib-docs/building_diplib.html).
27+
28+
## For use from MATLAB
29+
30+
We haven't created any pre-built installers for this version of DIPlib.
31+
You will need to build from source. This is not complicated. We have
32+
[simple and clear instructions available](/diplib-docs/building_diplib.html).
33+
34+
## For use from C++
35+
36+
Please build from source. This should be a lot easier for you than messing
37+
with pre-compiled libraries and their linker compatibility issues. We recommend that you use *CMake*
38+
to build a project using *DIPlib*, either using the *DIPlib* repository as a sub-project, or following
39+
[this example *CMake* file](https://github.com/DIPlib/diplib/blob/master/examples/independent_project/CMakeLists.txt).
40+
If you don't want to use *CMake* for your project, then see
41+
[here](/diplib-docs/building_diplib.html#linking_diplib) for
42+
instructions on which preprocessor macros to define.
43+
44+
Though there should be no need to change any of your code to use the new version of library,
45+
you might have to re-compile it, since some header files have changed.

0 commit comments

Comments
 (0)