All pastes #2048932 Raw Edit

Untitled

public text v1 · immutable
#2048932 ·published 2011-04-21 09:29 UTC
rendered paste body
import java.awt.image.BufferedImage;


public class DilationOperator extends Operator

{
	public ImageCanv performOperator(ImageCanv canvasLeft)
	 {
			double [][] kernel ;
		
			kernel = new double [3][3];
		
			kernel[0][0]=(double)0;	kernel[1][0]=(double)1;	kernel[2][0]=(double)0;
			kernel[0][1]=(double)1;	kernel[1][1]=(double)1;	kernel[2][1]=(double)1;
			kernel[0][2]=(double)0;	kernel[1][2]=(double)1;	kernel[2][2]=(double)0;
		 	
			int canvasWidth = canvasLeft.schets.bitmap.getWidth();
			int canvasHeight = canvasLeft.schets.bitmap.getHeight();
			
			BufferedImage newImage = new BufferedImage(canvasLeft.schets.bitmap.getWidth(), canvasLeft.schets.bitmap.getHeight(), BufferedImage.TYPE_BYTE_GRAY    );
			
			ImageCanv oldImage = new ImageCanv();
			oldImage=canvasLeft;
			
			//For all pixels
			double min=255;
			
			//for(int x=1; x<15 ; x++)
			for(int y=1; y<canvasHeight-1; y++)
			  	 
			 {
				//for(int y=1; y<2 ; y++)
				for(int x=1; x< canvasWidth-1; x++)
				 {
				 
							for(int kx =0; kx<3 ; kx++)
							{
								for(int ky = 0; ky<3; ky++)
								{
									double convolutionValue = kernel[kx][ky]*(double)oldImage.schets.bitmap.getRaster().getSample((int)(x+kx-1),(int)(y+ky-1),0);
									//System.out.println("convolutionValue" + x + "," + y + "=" + convolutionValue);
									//System.out.println("EchteValue = " + (double)oldImage.getRaster().getSample((int)(x+kx-1),(int)(y+ky-1),0));
									if(kernel[kx][ky]!= 0 && min > convolutionValue)
									{
										min = convolutionValue;
									//	System.out.println("min" + min);
									}
									convolutionValue=255;
							
								}
							}
					//System.out.println("kernel klaar. xy =" +x +","+y+" min=" + min);
					newImage.getRaster().setSample(x, y, 0, min);
					min = 255;
					//System.out.println("min na reset"+ min);
			
				 }
			//	System.out.println("min naar volgende x = " + min);
			 }
			canvasLeft.schets.bitmap = newImage;
			
			return canvasLeft;
	 }

}