📄 zhifangtu.java
字号:
import java.awt.*; // 包含有关文字,颜色,和基本图形的类,是从类Object直接派生出来的类
import java.awt.image.*;
import java.applet.*; //Applet类具有处理图形用户接口(GUI)的功能
public class zhifangtu extends Applet //继承JAVA的Applet程序
{
Image img; //创建图像(image)图形对象。它是java.awt.image.BufferedImage类的对象
int imgWidth,imgHigh; // 原图像的宽度和高度
int N[]; //存放所需的面积大小
int huidu[]=new int[256]; //分配直方图数据缓存区(数组),为256级灰度图像
public void init() //Applet的init()方法,用来初始化图像文件,Applet程序启动时自动调用
{
try
{
img=getImage(getDocumentBase(),"大脑图.jpg"); //获取要分析的图片
MediaTracker mt= new MediaTracker(this); //接收图片,并且转换的,若删除图片则显示不出来
mt.addImage(img,0); //加载图片,默认为0
mt.waitForID(0);
imgWidth=img.getWidth(null); //获取原图片的宽度
imgHigh=img.getHeight(null); //获取原图片的长度
N=new int [imgWidth*imgHigh]; //N为图片面积定义变化的数组
PixelGrabber grabber=new PixelGrabber(img,0,0,imgWidth,imgHigh,N,0,imgWidth); //获取图像的图素
grabber.grabPixels(); //对象创建的函数
}catch(InterruptedException e){}; //出错,则抛出异常
for(int n=0;n<imgWidth*imgHigh;n++) //循环,在原图片的面积范围内
{
int pixel=N[n]; //图像的映像点,图素
int red=0xff&(pixel>>16); //获取像素颜色的三原色,红色直方图数据
int green=0xff&(pixel>>8); //绿色直方图数据
int blue=0xff&(pixel); //蓝色直方图数据
int L=(int)(0.33*red+0.56*green+0.11*blue); //得到亮度值L
huidu[L]++;
}
}
//g是Graphics类的对象
public void paint (Graphics g) //paint()方法,显示文字,图形和其他界面元素,自动调用
{
g.drawImage(img,50,0,450,400,null); //设置图片显示的大小
g.drawLine(20,610,20,300); //画线,以(20,610)为出发点
g.drawLine(20,610,550,610);
int x=0,y=0; //X轴与Y轴
for(int n=0;n<256;n++) //设置为256级灰度图像
{
x=20+2*n; //循环画出直方图直线,X轴从20开始
y=610-(int)(huidu[n]/30); //Y轴从610开始
g.drawLine(x,610,x,y); //画线
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -