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

📄 qjfzcl.java

📁 计算机图象处理的java源代码,可以实现图象的放大缩小等基本功能
💻 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;
//**********************全局阀值2值处理
public class Qjfzcl extends BasicImage {

	
	double coefficients;
	double gate;
	
	public Qjfzcl() {
		super();
		// TODO 自动生成构造函数存根
	}
	public Qjfzcl(String fileName,double coefficients ,double gate) {
		super(fileName);
		//this.w=w;
		//this.h=h;
		this.coefficients=coefficients;
		this.gate=gate;
		// TODO 自动生成构造函数存根
	}

    
	 public int[] thresholdProcess(int []data,int width,int height,double coefficients,double gate){
	     int [] processData=new int[data.length];
	     if(data.length!=width*height)
	      return processData;
	     else{
	      double sum=0;
	      double average=0;
	      double variance=0;
	      double threshold;
	      
	      if( gate!=0){
	       threshold=gate; 
	      }
	      else{
	            for(int i=0;i<width*height;i++){
	            sum+=data[i];
	            }
	            average=sum/(width*height);
	      
	            for(int i=0;i<width*height;i++){
	              variance+=(data[i]-average)*(data[i]-average);
	            }
	            variance=Math.sqrt(variance);
	            threshold=average-coefficients*variance;
	      }
	      
	         for(int i=0;i<width*height;i++){
	          if(data[i]>threshold)
	             processData[i]=255;
	          else 
	                processData[i]=0;
	         }
	      
	         return processData;
	       }
	    }
	    
   
	public Image imageProcess()
	{
		 System.out.println("-------------imageProcess()");
		 int [] data_processed=this.thresholdProcess(this.imageData,this.wideth,this.height,this.coefficients,this.gate)  ;
		 imageProcessed=this.createImage(data_processed);
		
		return imageProcessed;
	}
		
		
		public  void saveImageAfterProcess()
		{
			 System.out.println("-------------imageProcess()");
			this.saveImage("d:\\006.bmp");
		}
		
		public  void showImageAfterProcess()
		{}
		/**
		 * @param args
		 */
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		Qjfzcl zyy=new Qjfzcl("003.jpg",1.5,34);
		zyy.imageProcess();
		zyy.saveImage("d:\\zyyQjfzcl.jpg");
	}

}

⌨️ 快捷键说明

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