commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <>
Subject [jira] [Updated] (MATH-1166) BicubicInterpolation may have a bug
Date Sun, 23 Nov 2014 19:20:12 GMT


Gilles updated MATH-1166:
    Attachment: MATH-1166.patch

I finally tracked down the bug, thanks to web page that showed a code excerpt from the well-known

There were actually two bugs:
* one was indeed a transposition of the coefficient matrix,
* the other was that the implementation on Wikipedia was assuming a _one_-pixel "delta" between

In the attached patch, I've created new classes:
* {{BicubicInterpolatingFunction}}
* {{BicubicInterpolator}}

The reason is that the fix entailed the failure of the tests in
{{BicubicInterpolatingFunctionTest}} related to the methods providing the partial derivatives
functionality. A solution could have been to remove those but it cannot be done because of
backward compatibility.

The {{TricubicSplineInterpolator}} must be deprecated since it is based on the buggy code,
and the implementation requires the partial derivatives...

A problem remained in that the {{BicubicInterpolator}} needs to estimate the derivatives in
order to use the {{BicubicInterpolatingFunction}}. This entails that, on the border of the
sampling range, the interpolation is wrong.  As a workaround, the method "isValidPoint" is
overridden, and for the "valid" points, the interpolation is within a reasonable tolerance.

This is a weak point of the {{BicubicInterpolator}}, but in some cases (as in the picture
produced by Ajo's code), there could be less artefacts.

Is it OK to commit this patch?
Or do we proceed otherwise?

> BicubicInterpolation may have a bug
> -----------------------------------
>                 Key: MATH-1166
>                 URL:
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Ajo Fod
>         Attachments:, MATH-1166.patch, myimage.jpg
> I plotted a random image with bicubic interpolation hoping to see something like this:
> ... but instead I got something weird.

This message was sent by Atlassian JIRA

View raw message