📄 zftjhh.java
字号:
package image;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.awt.image.Raster;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class Zftjhh extends BasicImage { //直方图均衡化
GrayImage grayImage=new GrayImage(this.fileName);
public Zftjhh() {
super();
// TODO 自动生成构造函数存根
}
public Zftjhh(String fileName) {
super(fileName);
// TODO 自动生成构造函数存根
}
/**
* @param args
*/
public int [] grayImage()
{
return grayImage.grayImage();
}
public int [] equilibrateGray(int[] PixelsGray,int width,int height)
{
System.out.println("-----------------equilibrateGray");
int gray;
int length=PixelsGray.length;
int FrequenceGray[]=new int[length];
int SumGray[]=new int[256];
int ImageDestination[]=new int[length];
for(int i = 0; i <length ;i++)
{
System.out.println("------------------PixelsGray["+i+"]:"+PixelsGray[i]);
gray=PixelsGray[i];
FrequenceGray[gray]++;
}
// 灰度均衡化
SumGray[0]=FrequenceGray[0];
for(int i=1;i<256;i++){
SumGray[i]=SumGray[i-1]+FrequenceGray[i];
}
for(int i=0;i<256;i++) {
SumGray[i]=(int)(SumGray[i]*255/length);
}
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
int k=i*width+j;
ImageDestination[k]=0xFF000000 | ((SumGray[PixelsGray[k]]<<
16 ) | (SumGray[PixelsGray[k]]<< 8 ) | SumGray[PixelsGray[k]]);
}
}
return ImageDestination;
}
public int [] equilibrateGray()
{
return this.equilibrateGray(this.grayImage(),this.wideth,this.height);
}
public Image imageProcess()
{
System.out.println("-------------imageProcess()");
int [] data_gray= this.equilibrateGray();
imageProcessed=this.createImage(data_gray);
return imageProcessed;
}
public void saveImageAfterProcess()
{
System.out.println("-------------imageProcess()");
this.saveImage("d:\\006.bmp");
}
public void showImageAfterProcess()
{}
public static void main(String[] args) {
// TODO 自动生成方法存根
/*
GrayImage zyy=new GrayImage("003.jpg");
zyy.imageProcess();
zyy.saveImage("d:\\006.bmp");
*/
Zftjhh zyy=new Zftjhh("003.jpg");
zyy.imageProcess();
zyy.saveImage("d:\\008.bmp");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -