图像像素基本操作——自然系列滤镜

Posted 爽朗的sunmeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像像素基本操作——自然系列滤镜相关的知识,希望对你有一定的参考价值。

主要代码如下:
package chapter5;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;

/**

  • Created by LENOVO on 18-1-30.
    */
    public class LvJingFilter extends AbstractBufferedImageOp {
    int[] fogLookUp = new int[257];//雾化风格颜色查找表
    int[] rainbowLookup ;
    public LvJingFilter(){

    }
    public BufferedImage filter(BufferedImage src,BufferedImage dest){
    int width = src.getWidth();
    int height = src.getHeight();
    if(dest == null){
    dest = creatCompatibleDestImage(src,null);
    }
    int inpixels[] = new int[width*height];
    int outpixels[] = new int[width*height];
    getRGB(src,0,0,width,height,inpixels);
    int index = 0;
    for(int row=0;row<height;row++){
    int ta = 0,tr = 0,tg = 0,tb = 0;
    for(int col=0;col

    return dest;

    }
    //雾风格颜色查找表//40,41,42,.....127,127,127,....127,128,129,...,255
    public void buildFogLookupTable(){
    //颜色查找表
    int fogLimit = 40;
    for(int i=0; i

    }

    }

    //彩虹风格颜色查找表
    public void buildRainBowLookupTable(){
    java.net.URL imageURL = this.getClass().getResource("rainbow.jpg");
    if(imageURL !=null){
    try {
    BufferedImage image = ImageIO.read(imageURL);
    int width = image.getWidth();
    int height = image.getHeight();
    rainbowLookup = new int[width];
    int[] inPixels = new int[width*height];
    getRGB(image,0,0,width,height,inPixels);
    for(int col=0;col<width;col++){
    rainbowLookup[col] = inPixels[col];
    }
    } catch (IOException e) {
    // e.printStackTrace();
    System.out.println("An error occured when loading the image icon...");
    }
    }

    }
    }
    测试代码同上

以上是关于图像像素基本操作——自然系列滤镜的主要内容,如果未能解决你的问题,请参考以下文章

视觉基础篇12 # 如何使用滤镜函数实现美颜效果?

图像滤镜处理算法:灰度黑白底片浮雕

图像编程:滤镜混合模式遮罩

C语言数字图像处理进阶---11 扩散滤镜

C语言数字图像处理进阶---11 扩散滤镜

C语言数字图像处理进阶---11 扩散滤镜