/** * Determines whether a kernel is the Floyd-Steinberg kernel. * * @param kernel The <code>KernelJAI</code> to examine. * @return Whether the kernel argument is the Floyd-Steinberg kernel. */ private static boolean isFloydSteinbergKernel(KernelJAI kernel) { int ky = kernel.getYOrigin(); return (kernel.getWidth() == 3 && kernel.getXOrigin() == 1 && kernel.getHeight() - ky == 2 && Math.abs(kernel.getElement(2, ky) - 7.0F / 16.0F) < FLOAT_EPSILON && Math.abs(kernel.getElement(0, ky + 1) - 3.0F / 16.0F) < FLOAT_EPSILON && Math.abs(kernel.getElement(1, ky + 1) - 5.0F / 16.0F) < FLOAT_EPSILON && Math .abs(kernel.getElement(2, ky + 1) - 1.0F / 16.0F) < FLOAT_EPSILON); }
/** * Determines whether a kernel is the Floyd-Steinberg kernel. * * @param kernel The <code>KernelJAI</code> to examine. * @return Whether the kernel argument is the Floyd-Steinberg kernel. */ private static boolean isFloydSteinbergKernel(KernelJAI kernel) { int ky = kernel.getYOrigin(); return (kernel.getWidth() == 3 && kernel.getXOrigin() == 1 && kernel.getHeight() - ky == 2 && Math.abs(kernel.getElement(2, ky) - 7.0F / 16.0F) < FLOAT_EPSILON && Math.abs(kernel.getElement(0, ky + 1) - 3.0F / 16.0F) < FLOAT_EPSILON && Math.abs(kernel.getElement(1, ky + 1) - 5.0F / 16.0F) < FLOAT_EPSILON && Math .abs(kernel.getElement(2, ky + 1) - 1.0F / 16.0F) < FLOAT_EPSILON); }
for (int j=0; j<rowCount; j++) { for (int i=0; i<colCount; i++) { if (elements[j][i] != kernel.getElement(i,j)) { continue iter;
for (int y=height; --y>=0;) { for (int x=width; --x>=0;) { sumH += value * kernel.getElement(x,y); for (int x=width; --x>=0;) { for (int y=height; --y>=0;) { sumV += value * kernel.getElement(x,y);
for (int y=height; --y>=0;) { for (int x=width; --x>=0;) { sumH += value * kernel.getElement(x,y); for (int x=width; --x>=0;) { for (int y=height; --y>=0;) { sumV += value * kernel.getElement(x,y);
/** * Set the kernel. The table size will be set to the specified kernel size, add all * coefficients will be copied in the table. If the specified kernel matches one of * the kernel registered with the {@link #addKernel addKernel} method, then the kernel * name and category will be updated according. * * @see KernelEditor#setKernel */ public void setKernel(final KernelJAI kernel) { final int rowCount = kernel.getHeight(); final int colCount = kernel.getWidth(); setKernelSize(rowCount, colCount); for (int j=0; j<rowCount; j++) { for (int i=0; i<colCount; i++) { elements[j][i] = kernel.getElement(i,j); } } fireTableDataChanged(); }