zft.java

来自「该程序能够实现图像分割功能」· Java 代码 · 共 83 行

JAVA
83
字号
import java.awt.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
public class zft
{
	 
	 public static void main(String[] args) 
  { 
       new zft();
      
 }
	  public static double huidu[]=new double[256];
	 public zft() 
	 {
	 try{
		BufferedImage bufImg;   
		bufImg=ImageIO.read(new java.io.File("1.jpg"));   
		int width=bufImg.getWidth();   //获取图片的宽
		int height=bufImg.getHeight();  //获取图片的长 
	    int dianhuidu[][]=new int[width][height];   
		     for(int j=0; j<height;j++)     
		      for(int i=0;i<width;i++)
		        dianhuidu[i][j]=bufImg.getRGB(i,j)& 0xff;//获取灰度
		     for(int p=0;p<256;p++)//对灰度进行统计
		      {   
		    	  int n=0;
		    	  for(int a=0;a<width;a++)
		    	  {
		    		 for(int b=0;b<height;b++)
		    	     {
		    	        if(dianhuidu[a][b]==p) //对灰度为p的象素点累加
		    	    	  n++;
		    	     }
		    	  }
		    	  huidu[p]=(1.0*n/(width*height)*500);
		      }
		      JFrame frame = new JFrame("直方图");//新建一个frame类
		      MapPane map1 = new MapPane();//画布
		      Container cp=frame.getContentPane();//容器类
		      cp.add(map1);
		      Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();
		      frame.setLocation((screen.width-250)/2,(screen.height-550)/2);
		      frame.setSize(550,550);
		   	  frame.setVisible(true);
		   	  frame.setResizable(false);
		   }
	 
	 catch (Exception e) 
	 {
		 
	 }
	 }
}
class MapPane extends JPanel
{  
   public double[] liu=zft.huidu;	
   public void paint(Graphics g)
   {
 	   String string1;
 	   Graphics2D g2d=(Graphics2D)g;
 	   g.drawLine(10,30,10,500);
 	   g.drawLine(10,500,530,500);
 	   for(int j=0;j<55;j=j+1)
 	    { 
 		   if(j%10==0)
 	       {
 	         string1=j*5+"";
 	         g.drawString(string1,j*10,515);
 	        }
 	    } 
 	    for(int k=0, m=0;k<256;k++,m++)
 	    {
 	        double mm=500.0-liu[k]*50;
 	        Line2D.Double line1=new Line2D.Double((double)(2*k+11),(double)500,(double)(11+2*k),mm);
 	        g2d.draw(line1);
 	    }
   }
   
 }

 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?