001 /* 002 * UnsharpMaskKernel 003 * 004 * Copyright (c) 2002, 2003 Marco Schmidt. 005 * All rights reserved. 006 */ 007 008 package net.sourceforge.jiu.filters; 009 010 /** 011 * An unsharp mask kernel to be used with {@link ConvolutionKernelFilter}. 012 * 013 * @author Marco Schmidt 014 * @author Niels Donvil 015 * @since 0.10.0 016 */ 017 public class UnsharpMaskKernel extends ConvolutionKernelData 018 { 019 /** 020 * Creates a new unsharp mask kernel. 021 * @param level adjusts the amount of 'unsharpness', must be from 1 to 50 022 */ 023 public UnsharpMaskKernel(int level) 024 { 025 super("Unsharp mask", new int[] {1}, 5, 5, 1, 0); 026 if (level < 1 || level > 50) 027 { 028 throw new IllegalArgumentException("The level argument must be >= 1 and <= 50."); 029 } 030 level = ((51 - level) * 4 ) + 20; 031 setDiv(level); 032 int[] data = 033 { 034 0, 0, -1, 0, 0, 035 0, -8, -21, -8, 0, 036 -1, -21, level + 120, -21, -1, 037 0, -8, -21, -8, 0, 038 0, 0, -1, 0, 0 039 }; 040 setData(data); 041 check(); 042 } 043 }