|
| 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). |
0 commit comments