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

📄 czbyjc.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;
//***************************************垂直边缘检测
public class Czbyjc  extends BasicImage{

	int sobelCoefficients=0;
	public Czbyjc() {
		super();
		// TODO 自动生成构造函数存根
	}

	public Czbyjc(String fileName,int sobelCoefficients ) {
		super(fileName);
		this.sobelCoefficients=sobelCoefficients;
		// TODO 自动生成构造函数存根
	}
	public int[] verticleEdgeCheck(int []data,int width,int height,int sobelCoefficients) throws Exception{
	     int filterData[]=new int[data.length];
	     int min=10000;
	     int max=-10000;
	     if(data.length!=width*height)
	      return filterData;
	     
	     try{
	     
	       for(int i=0;i<height;i++){
	       for(int j=0;j<width;j++){
	        if(i==0 || i==1 || i==height-1 || i==height-2 
	           ||j==0 || j==1 || j==width-1 || j==width-2){
	               filterData[i*width+j]=data[i*width+j];
	         }
	         else{
	          double average;
	            //中心的九个像素点
	             //average=data[i*width+j]-Math.sqrt(2)*data[i*width+j-1]+Math.sqrt(2)*data[i*width+j+1]
	          average=data[i*width+j]-sobelCoefficients*data[i*width+j-1]+sobelCoefficients*data[i*width+j+1]       
	                  -data[(i-1)*width+j-1]+data[(i-1)*width+j+1]
	                     -data[(i+1)*width+j-1]+data[(i+1)*width+j+1];
	             filterData[i*width+j]=(int)(average);
	         }       
	        if(filterData[i*width+j]<min)
	         min=filterData[i*width+j];
	         if(filterData[i*width+j]>max)
	         max=filterData[i*width+j];
	        }
	        }
	       for(int i=0;i<width*height;i++){
	        filterData[i]=(filterData[i]-min)*255/(max-min);
	         }
	     
	     }
	     catch (Exception e) 
	     {
	            e.printStackTrace();
	            throw new Exception(e);
	        }  
	     
	     return filterData;
	    }
	
	public Image imageProcess()
	{
		 System.out.println("-------------imageProcess()");
		 try{
	int [] dataProcessed=this.verticleEdgeCheck(this.imageData,this.wideth,this.height,this.sobelCoefficients);
		
	imageProcessed=this.createImage(dataProcessed);
		 }catch(Exception e)
		 {
			 e.printStackTrace();
		 }
		
		return imageProcessed;
	}
		
		
		public  void saveImageAfterProcess()
		{
			 System.out.println("-------------imageProcess()");
			this.saveImage("d:\\006.bmp");
		}
		
		public  void showImageAfterProcess()
		{}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		Czbyjc zyy=new Czbyjc("003.jpg",1);
		zyy.imageProcess();
		zyy.saveImage("d:\\zyyCzbycl.jpg");
		
	}

}

⌨️ 快捷键说明

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