⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhifangtu.java

📁 数字图像处理
💻 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 + -