// Path: desktop/src/main/java/com/cv4j/core/datamodel/ImageProcessor.java
// public interface ImageProcessor {
// 
// 	/** Returns the width of this image in pixels. */
// 	int getWidth();
// 
// 	/** Returns the height of this image in pixels. */
// 	int getHeight();
// 
// 	/** Returns the channels of this image. */
// 	int getChannels();
// 
// 	void getPixel(int row, int col, byte[] rgb);
// 
// 	/** get all pixels */
// 	int[] getPixels();
// 
// 	ImageData getImage();
// 
// 	/** Returns float array with one channel of image by index*/
// 	float[] toFloat(int index);
// 
// 	/** Returns int array with one channel of image by index*/
// 	int[] toInt(int index);
// 
// 	/** Returns byte array with one channel of image by index*/
// 	byte[] toByte(int index);
// 
// }
// 
// Path: desktop/src/main/java/com/cv4j/core/datamodel/lut/LUT.java
// public class LUT {
// 
//     public static int[][] getColorFilterLUT(int style) {
// 
//         switch(style) {
//             case AUTUMN_STYLE:
//                 return AutumnLUT.AUTUMN_LUT;
// 
//             case BONE_STYLE:
//                 return BoneLUT.BONE_LUT;
// 
//             case COOL_STYLE:
//                 return CoolLUT.COOL_LUT;
// 
//             case HOT_STYLE:
//                 return HotLUT.HOT_LUT;
// 
//             case HSV_STYLE:
//                 return HsvLUT.HSV_LUT;
// 
//             case JET_STYLE:
//                 return JetLUT.JET_LUT;
// 
//             case OCEAN_STYLE:
//                 return OceanLUT.OCEAN_LUT;
// 
//             case PINK_STYLE:
//                 return PinkLUT.PINK_LUT;
// 
//             case RAINBOW_STYLE:
//                 return RainbowLUT.RAINBOW_LUT;
// 
//             case SPRING_STYLE:
//                 return SpringLUT.SPRING_LUT;
// 
//             case SUMMER_STYLE:
//                 return SummerLUT.SUMMER_LUT;
// 
//             case WINTER_STYLE:
//                 return WinterLUT.WINTER_LUT;
// 
//             default:
//                 return AutumnLUT.AUTUMN_LUT;
//         }
//     }
// }


import com.cv4j.core.datamodel.ImageProcessor;
import com.cv4j.core.datamodel.lut.LUT;
/*
 * Copyright (c) 2017-present, CV4J Contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.cv4j.core.filters;


public class ColorFilter extends BaseFilter {

    public static final int AUTUMN_STYLE = 0;
    public static final int BONE_STYLE = 1;
    public static final int COOL_STYLE = 2;
    public static final int HOT_STYLE = 3;
    public static final int HSV_STYLE = 4;
    public static final int JET_STYLE = 5;
    public static final int OCEAN_STYLE = 6;
    public static final int PINK_STYLE = 7;
    public static final int RAINBOW_STYLE = 8;
    public static final int SPRING_STYLE = 9;
    public static final int SUMMER_STYLE = 10;
    public static final int WINTER_STYLE = 11;

    private int style;

    public ColorFilter() {
        style = AUTUMN_STYLE;
    }

    public void setStyle(int style) {
        this.style = style;
    }

    @Override
// Path: desktop/src/main/java/com/cv4j/core/datamodel/ImageProcessor.java
// public interface ImageProcessor {
// 
// 	/** Returns the width of this image in pixels. */
// 	int getWidth();
// 
// 	/** Returns the height of this image in pixels. */
// 	int getHeight();
// 
// 	/** Returns the channels of this image. */
// 	int getChannels();
// 
// 	void getPixel(int row, int col, byte[] rgb);
// 
// 	/** get all pixels */
// 	int[] getPixels();
// 
// 	ImageData getImage();
// 
// 	/** Returns float array with one channel of image by index*/
// 	float[] toFloat(int index);
// 
// 	/** Returns int array with one channel of image by index*/
// 	int[] toInt(int index);
// 
// 	/** Returns byte array with one channel of image by index*/
// 	byte[] toByte(int index);
// 
// }
// 
// Path: desktop/src/main/java/com/cv4j/core/datamodel/lut/LUT.java
// public class LUT {
// 
//     public static int[][] getColorFilterLUT(int style) {
// 
//         switch(style) {
//             case AUTUMN_STYLE:
//                 return AutumnLUT.AUTUMN_LUT;
// 
//             case BONE_STYLE:
//                 return BoneLUT.BONE_LUT;
// 
//             case COOL_STYLE:
//                 return CoolLUT.COOL_LUT;
// 
//             case HOT_STYLE:
//                 return HotLUT.HOT_LUT;
// 
//             case HSV_STYLE:
//                 return HsvLUT.HSV_LUT;
// 
//             case JET_STYLE:
//                 return JetLUT.JET_LUT;
// 
//             case OCEAN_STYLE:
//                 return OceanLUT.OCEAN_LUT;
// 
//             case PINK_STYLE:
//                 return PinkLUT.PINK_LUT;
// 
//             case RAINBOW_STYLE:
//                 return RainbowLUT.RAINBOW_LUT;
// 
//             case SPRING_STYLE:
//                 return SpringLUT.SPRING_LUT;
// 
//             case SUMMER_STYLE:
//                 return SummerLUT.SUMMER_LUT;
// 
//             case WINTER_STYLE:
//                 return WinterLUT.WINTER_LUT;
// 
//             default:
//                 return AutumnLUT.AUTUMN_LUT;
//         }
//     }
// }


// Path: desktop/src/main/java/com/cv4j/core/filters/ColorFilter.java
import com.cv4j.core.datamodel.ImageProcessor;
import com.cv4j.core.datamodel.lut.LUT;

/*
 * Copyright (c) 2017-present, CV4J Contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.cv4j.core.filters;


public class ColorFilter extends BaseFilter {

    public static final int AUTUMN_STYLE = 0;
    public static final int BONE_STYLE = 1;
    public static final int COOL_STYLE = 2;
    public static final int HOT_STYLE = 3;
    public static final int HSV_STYLE = 4;
    public static final int JET_STYLE = 5;
    public static final int OCEAN_STYLE = 6;
    public static final int PINK_STYLE = 7;
    public static final int RAINBOW_STYLE = 8;
    public static final int SPRING_STYLE = 9;
    public static final int SUMMER_STYLE = 10;
    public static final int WINTER_STYLE = 11;

    private int style;

    public ColorFilter() {
        style = AUTUMN_STYLE;
    }

    public void setStyle(int style) {
        this.style = style;
    }

    @Override
    public ImageProcessor doFilter(ImageProcessor src) {