private double kernels(double dx, double dy,
byte h1, byte h2, byte h3, byte h4, byte h5, byte h6,
byte h7, byte h8, byte h9, byte h10, byte h11, byte h12)
{
double value = 0;
double dxv, dyv, attn;
dxv = dx + 1 + 2 * STRETCH_CONSTANT; dyv = dy + 1 + 2 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h1;
}
dxv = dx + 0 + STRETCH_CONSTANT; dyv = dy + 1 + STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h2;
// }
dxv = dx - 1; dyv = dy + 1;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h3;
}
dxv = dx + 1 + STRETCH_CONSTANT; dyv = dy + 0 + STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h4;
}
dxv = dx + 0; dyv = dy + 0;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h5;
// }
dxv = dx - 1 - STRETCH_CONSTANT; dyv = dy + 0 - STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h6;
// }
dxv = dx - 2 - 2 * STRETCH_CONSTANT; dyv = dy + 0 - 2 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h7;
}
dxv = dx + 0 - STRETCH_CONSTANT; dyv = dy - 1 - STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h8;
// }
dxv = dx - 1 - 2 * STRETCH_CONSTANT; dyv = dy - 1 - 2 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h9;
// }
dxv = dx - 2 - 3 * STRETCH_CONSTANT; dyv = dy - 1 - 3 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
// if (attn > 0) {
attn *= attn;
value += attn * attn * h10;
// }
dxv = dx - 1 - 3 * STRETCH_CONSTANT; dyv = dy - 2 - 3 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h11;
}
dxv = dx - 2 - 4 * STRETCH_CONSTANT; dyv = dy - 2 - 4 * STRETCH_CONSTANT;
attn = KERNEL_RADIUS - dxv * dxv - dyv * dyv;
if (attn > 0) {
attn *= attn;
value += attn * attn * h12;
}
return value;
}