kopia lustrzana https://gitlab.com/sane-project/backends
rodzic
4fb29c00f2
commit
d897992226
|
@ -352,7 +352,7 @@ pixma_binarize_line(pixma_scan_param_t * sp, uint8_t * dst, uint8_t * src, unsig
|
||||||
unsigned j, x, windowX, sum = 0;
|
unsigned j, x, windowX, sum = 0;
|
||||||
unsigned threshold;
|
unsigned threshold;
|
||||||
unsigned offset, addCol;
|
unsigned offset, addCol;
|
||||||
int dropCol;
|
int dropCol, offsetX;
|
||||||
unsigned char mask;
|
unsigned char mask;
|
||||||
uint8_t min, max;
|
uint8_t min, max;
|
||||||
|
|
||||||
|
@ -401,10 +401,12 @@ pixma_binarize_line(pixma_scan_param_t * sp, uint8_t * dst, uint8_t * src, unsig
|
||||||
if (!(windowX % 2))
|
if (!(windowX % 2))
|
||||||
windowX++;
|
windowX++;
|
||||||
|
|
||||||
/* to avoid conflicts with *dst start at 2nd pixel (byte) */
|
/* to avoid conflicts with *dst start with offset */
|
||||||
for (j = 1; j <= windowX; j++)
|
offsetX = 1 + (windowX / 2) / 8;
|
||||||
|
for (j = offsetX; j <= windowX; j++)
|
||||||
sum += src[j];
|
sum += src[j];
|
||||||
/* PDBG (pixma_dbg (4, " *pixma_binarize_line***** windowX = %d, sum = %d\n", windowX, sum)); */
|
/* PDBG (pixma_dbg (4, " *pixma_binarize_line***** windowX = %u, startX = %u, sum = %u\n",
|
||||||
|
windowX, startX, sum)); */
|
||||||
|
|
||||||
/* fourth, walk the input buffer, output bits */
|
/* fourth, walk the input buffer, output bits */
|
||||||
for (j = 0; j < width; j++)
|
for (j = 0; j < width; j++)
|
||||||
|
@ -420,10 +422,10 @@ pixma_binarize_line(pixma_scan_param_t * sp, uint8_t * dst, uint8_t * src, unsig
|
||||||
addCol = j + windowX / 2;
|
addCol = j + windowX / 2;
|
||||||
dropCol = addCol - windowX;
|
dropCol = addCol - windowX;
|
||||||
|
|
||||||
if (dropCol > 0 && addCol < width)
|
if (dropCol >= offsetX && addCol < width)
|
||||||
{
|
{
|
||||||
sum += src[addCol];
|
sum += src[addCol];
|
||||||
sum -= src[dropCol];
|
sum -= (sum < src[dropCol] ? sum : src[dropCol]); /* no negative sum */
|
||||||
}
|
}
|
||||||
threshold = sp->lineart_lut[sum / windowX];
|
threshold = sp->lineart_lut[sum / windowX];
|
||||||
/* PDBG (pixma_dbg (4, " *pixma_binarize_line***** addCol = %u, dropCol = %d, sum = %u, windowX = %u, lut-element = %d, threshold = %u\n",
|
/* PDBG (pixma_dbg (4, " *pixma_binarize_line***** addCol = %u, dropCol = %d, sum = %u, windowX = %u, lut-element = %d, threshold = %u\n",
|
||||||
|
|
Ładowanie…
Reference in New Issue