fix rounding in region shrink
we were not rounding int averages to nearest, thanks beaudet see https://github.com/jcupitt/libvips/issues/659
This commit is contained in:
parent
8c8b71d935
commit
846e4209f9
|
@ -1149,7 +1149,7 @@ vips_region_shrink_labpack( VipsRegion *from, VipsRegion *to, VipsRect *target )
|
||||||
int b = sp[2] + sp[6] +
|
int b = sp[2] + sp[6] +
|
||||||
sp[ls + 2] + sp[ls + 6];
|
sp[ls + 2] + sp[ls + 6];
|
||||||
|
|
||||||
q[0] = l >> 2;
|
q[0] = (l + 2) >> 2;
|
||||||
q[1] = a >> 2;
|
q[1] = a >> 2;
|
||||||
q[2] = b >> 2;
|
q[2] = b >> 2;
|
||||||
q[3] = 0;
|
q[3] = 0;
|
||||||
|
@ -1170,7 +1170,7 @@ vips_region_shrink_labpack( VipsRegion *from, VipsRegion *to, VipsRect *target )
|
||||||
int tot = tp[z] + tp[z + nb] + \
|
int tot = tp[z] + tp[z + nb] + \
|
||||||
tp1[z] + tp1[z + nb]; \
|
tp1[z] + tp1[z + nb]; \
|
||||||
\
|
\
|
||||||
tq[z] = tot >> 2; \
|
tq[z] = (tot + 2) >> 2; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
/* Move on two pels in input. \
|
/* Move on two pels in input. \
|
||||||
|
|
Loading…
Reference in New Issue