IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 32727 for trunk/psLib


Ignore:
Timestamp:
Nov 21, 2011, 5:39:43 AM (15 years ago)
Author:
eugene
Message:

fix rare endpost error in psImageConvolve

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/imageops/psImageConvolve.c

    r32725 r32727  
    624624                ps##TYPE *vo = calculation->data.TYPE; \
    625625                int xMax = PS_MIN(Nrange, Nx); \
    626                 int convRange = PS_MIN(Nrange + 1, Nx); \
    627626                /* Smooth first Nrange pixels, with renorm */ \
    628627                for (int i = 0; i < xMax; i++, vi++, vo++) { \
     628                    int convRange = PS_MIN(Nrange + 1, Nx - xMax + 1);  \
    629629                    ps##TYPE *vr = vi - i; \
    630630                    ps##TYPE *vg = gauss - i; \
     
    672672        /* Smooth the first Nrange pixels, with renorm */ \
    673673        int yMax = PS_MIN(Nrange, Ny); \
    674         int convRange = PS_MIN(Nrange + 1, Ny); \
    675674        for (int j = 0; j < yMax; j++) { \
     675            int convRange = PS_MIN(Nrange + 1, Ny - j);                \
    676676            psVector *calculation = psVectorAlloc(Nx, PS_TYPE_##TYPE); \
    677677            /* Zero the output row */ \
     
    825825        for (int j = 0; j < Ny; j++) {
    826826            psF32 *vi = image->data.F32[j];
    827             int xMax = PS_MIN(Nrange, Nx);
    828             int convRange = PS_MIN(Nrange + 1, Nx);
     827            int xMax = PS_MIN(Nrange + 1, Nx);
    829828            /* Smooth first Nrange pixels, with renorm */
    830829            for (int i = 0; i < xMax; i++, vi++) {
     830                int convRange = PS_MIN(Nrange + 1, Nx - i);
    831831                psF32 *vr = vi - i;
    832832                psF32 *vg = gauss - i;
     
    873873        for (int i = 0; i < Nx; i++) {
    874874            int yMax = PS_MIN(Nrange, Ny);
    875             int convRange = PS_MIN(Nrange + 1, Ny);
    876875            /* Smooth first Nrange pixels, with renorm */
    877876            for (int j = 0; j < yMax; j++) {
     877                int convRange = PS_MIN(Nrange + 1, Ny - j);
    878878                psF32 *vg = gauss - j;
    879879                double g = 0.0;
Note: See TracChangeset for help on using the changeset viewer.