Beruflich Dokumente
Kultur Dokumente
*; public class pck extends myframe { Insets insets; Image src,dst; ImageProducer filtered; String filename=null; public pck() {}
public void abc() { if(filename!=null) { src=Toolkit.getDefaultToolkit().getImage(filename); MediaTracker mt=new MediaTracker(this); mt.addImage(src,0); try { mt.waitForID(0); }catch(Exception e) { System.out.println("Image Loading Error!"+e); System.exit(0); } dst=src; repaint(); } }
public void open() { FileDialog fd=new FileDialog(this,"Open",FileDialog.LOAD); fd.setVisible(true); String dir=fd.getDirectory(); String fname=fd.getFile(); filename=dir+fname; abc(); }
public void ls() { if(filename!=null) { int iw,ih; int j1,j2,j3,j4; int pixels[]; int out[]; int errflag=0; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){};
if((md.val1!=null)&&(md.val2!=null)&&(md.val3!=null)&&(md.val4!=null))
if(errflag==0) { LevelSlicing level=new LevelSlicing(j1,j2,j3,j4); out=level.slicedImage(pixels,iw,ih); dst=createImage(new MemoryImageSource(iw,ih,out,0,iw)); } else { errdialog ed=new errdialog(this,"Error!",true);
public void cs() { if(filename!=null) { int iw,ih; int j1,j2,j3,j4; int pixels[]; int out[]; int errflag=0; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){};
public void lp() { if(filename!=null) { int[] filter={1,1,1, 1,1,1, 1,1,1}; double multiplier=0.11111; convfilter cv=new convfilter(filter); filtered=cv.filteredImage(dst,multiplier); dst=createImage(filtered); repaint();
} }
public void hp() { if(filename!=null) { int[] filter={-1,-1,-1, -1,8,-1, -1,-1,-1}; double multiplier=1; convfilter cv=new convfilter(filter); filtered=cv.filteredImage(dst,multiplier); dst=createImage(filtered); repaint(); } }
public void hist() { if(filename!=null) { int iw,ih; int pixels[]; int out[]; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){}; Histogram h=new Histogram(this,"Histogram"); h.set(pixels,iw,ih);
h.setSize(320,480); h.setVisible(true); } }
public void thr() { if(filename!=null) { int iw,ih; int pixels[]; int out[]; int j1; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){};
if(md.val1!=null) { j1=Integer.parseInt(md.val1); if((j1<0)||(j1>255)) { errdialog ed=new errdialog(this,"Error!",true); ed.setSize(200,100); ed.setVisible(true); } else { thresholding level=new thresholding(j1); out=level.tsimage(pixels,iw,ih); dst=createImage(new MemoryImageSource(iw,ih,out,0,iw)); } } //MODIFIED repaint(); } }
int iw,ih; int pixels[]; int out[]; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){}; he heq=new he(); out=heq.equalize(pixels,iw,ih); dst=createImage(new MemoryImageSource(iw,ih,out,0,iw)); repaint(); } } public void neg() { if(filename!=null) { int iw,ih; int pixels[]; int out[]; iw=dst.getWidth(null); ih=dst.getHeight(null);
pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch(InterruptedException e){}; Negator negator=new Negator(); out=negator.negatepixels(pixels,iw,ih); dst=createImage(new MemoryImageSource(iw,ih,out,0,iw)); repaint(); } }
public void gs() { if(filename!=null) { int iw,ih; int pixels[]; int out[]; iw=dst.getWidth(null); ih=dst.getHeight(null); pixels=new int[iw*ih]; try { PixelGrabber pg=new PixelGrabber(dst,0,0,iw,ih,pixels,0,iw);
pg.grabPixels(); }catch(InterruptedException e){}; grey g=new grey(); out=g.greyimage(pixels,iw,ih); dst=createImage(new MemoryImageSource(iw,ih,out,0,iw)); repaint(); } }
ROTATE.JAVA
public Image rimage(Image img) { GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); try { int transparency=Transparency.OPAQUE; GraphicsDevice gs=ge.getDefaultScreenDevice(); GraphicsConfiguration gc=gs.getDefaultConfiguration(); bimage=gc.createCompatibleImage(img.getWidth(null),img.getHeight(null),transpa rency); }catch(Exception e){}
public int[] negatepixels(int inpixels[],int width,int height) { outpixels=new int[width*height]; for(int i=0;i<(width*height);i++) { int p=inpixels[i];
public class grey { int outpixels[]; public grey() {} public int[] greyimage(int[] inpixels,int width,int height) { outpixels=new int[width*height]; for(int i=0;i<(width*height);i++) { int p=inpixels[i]; int r=0xff&(p>>16); int g=0xff&(p>>8); int b=0xff&(p); int y=(int)(.33*r+.56*g+.11*b);
public class contrast { int r1,s1,r2,s2; int slp1,slp2,slp3; public int outpixels[];
public contrast(int sd1,int sd2,int sd3,int sd4) { r1=sd1; s1=sd2; r2=sd3; s2=sd4;
slp1=(int)(s1/r1);
slp2=(int)((s2-s1)/(r2-r1)); slp3=(int)((255-s2)/(255-r2)); System.out.println("the value of spl1 is" +slp1); System.out.println("the value of spl2 is" +slp2); System.out.println("the value of spl3 is" +slp3); }
public int[] csimage(int[] inpixels,int width,int height) { outpixels=new int[width*height]; for(int i=0;i<(width*height);i++) { int p=inpixels[i]; //System.out.println("the value of p is" +p); int r=0xff&(p>>16); //System.out.println("the value of r is" +r); if((r>0)&&(r<=r1)) r=(int)(slp1*r);
else
if((r>r1)&&(r<r2)) r=(int)(slp2*(r-r1)+s1);
else
if((r>=r2)&&(r<=255)) r=(int)(slp3*(r-r2)+s2);
int g=0xff&(p>>8);
if((g>=0)&&(g<=r1)) g=(int)(slp1*g);
else
if((g>r1)&&(g<r2)) g=(int)(slp2*(g-r1)+s1);
else
if((g>=r2)&&(g<=255)) g=(int)(slp3*(g-r2)+s2);
int b=0xff&(p);
if((b>=0)&&(b<=r1)) b=(int)(slp1*b);
else
if((b>r1)&&(b<r2))
b=(int)(slp2*(b-r1)+s1);
else
if((b>=r2)&&(b<=255)) b=(int)(slp3*(b-r2)+s2);
outpixels[i]=(255<<24)|(r<<16)|(g<<8)|b; }
import java.awt.*; import java.awt.Component; import java.awt.image.*; class convfilter implements ImageObserver { int[] oldpixels,newpixels; int w,h; PixelGrabber pg; MemoryImageSource mis; int index=0; int i00,i01,i02,i10,i11,i12,i20,i21,i22;
public convfilter(int[] matrix) { w00=matrix[0]; w01=matrix[1]; w02=matrix[2]; w10=matrix[3]; w11=matrix[4]; w12=matrix[5]; w20=matrix[6]; w21=matrix[7]; w22=matrix[8]; } public boolean imageUpdate(Image img,int infoflags,int x,int y,int width,int height) { w=width; h=height; if(w!=-1&&h!=-1) { return false; } return true; }
public ImageProducer filteredImage(Image source,double mult) { boolean success; w=source.getWidth(null); h=source.getHeight(null); oldpixels=new int[w*h]; newpixels=new int[w*h]; pg=new PixelGrabber(source.getSource(),0,0,w,h,oldpixels,0,w); try { success=pg.grabPixels(0); }catch(Exception e) { System.out.println("Error in grabbing"+e); } index=w+1; for(int y=1;y<h-1;y++) { calc3x3offsets(); for(int x=1;x<w-1;x++) { p00=oldpixels[i00]; p01=oldpixels[i01]; p02=oldpixels[i02]; p10=oldpixels[i10]; p11=oldpixels[i11];
newpixels[index++]=255<<24|newRed|newGreen|newBlue;
i00++; i01++; i02++; i10++; i11++; i12++; i20++; i21++; i22++; } index+=2; } mis=new MemoryImageSource(w,h,newpixels,0,w); return mis; }
final void calc3x3offsets() { i00=index-w-1; i01=i00+1; i02=i00+2; i10=index-1; i11=index; i12=index+1; i20=index+w-1; i21=i20+1; i22=i20+2; }
final int applyWeights(int shift,double multfactor) { double total=0; total+=((p00>>shift)&0xFF)*w00; total+=((p01>>shift)&0xFF)*w01; total+=((p02>>shift)&0xFF)*w02; total+=((p10>>shift)&0xFF)*w10; total+=((p11>>shift)&0xFF)*w11; total+=((p12>>shift)&0xFF)*w12; total+=((p20>>shift)&0xFF)*w20; total+=((p21>>shift)&0xFF)*w21; total+=((p22>>shift)&0xFF)*w22;
import java.applet.*; import java.awt.*; import java.awt.image.*; /*<applet code=Blurimage.class width=300 height=400> <param name=img value=c:/Balaji.gif></applet>*/
public class Blurimage extends Applet { Image img; int cell[]; int cell1[]; int iw,ih; int tw,th; int rs,gs,bs,r,g,b,rgb; public void init()
{ try { img=getImage(getDocumentBase(),getParameter("img")); MediaTracker t=new MediaTracker(this); t.addImage(img,0); t.waitForID(0); iw=img.getWidth(null); ih=img.getHeight(null); cell=new int[iw*ih]; cell1=new int[iw*ih]; /*try { PixelGrabber pg=new PixelGrabber(img,0,0,iw,ih,cell,0,iw); pg.grabPixels(); }catch(InterruptedException e){};*/ for(int y=1;y<ih;y++) { for(int x=1;x<iw;x++) { rs=0; gs=0; bs=0; for(int k=-1;k<=1;k++) { for(int j=-1;j<=1;j++)
{ rgb=cell[(y*k)*iw+x+j]; r=(rgb >> 16)& 0xff; g=(rgb >> 8) & 0xff; b=rgb & 0xff;
rs/=9; gs/=9; bs/=9; cell1[y*iw+x]=(0xff000000 | rs << 16 | gs << 8 | bs); } } } } img=createImage(new MemoryImageSource(iw,ih,cell1,0,iw)); repaint(); }catch(Exception e){} }} // ERRDILOG.JAVA
class errdialog extends Dialog implements ActionListener { Label m1,a1; Button ok; public errdialog(Frame p,String title,boolean m) { super(p,title,m); Panel p1=new Panel(); Panel p2=new Panel();
setLayout(new BorderLayout()); m1=new Label("Values should be with in 0-255"); ok=new Button("Ok"); p1.add(m1); p2.add(ok);
add("North",p1); add("Center",p2);
ok.addActionListener(this); }
abstract class myframe extends Frame implements ActionListener,WindowListener { MenuItem op,cls; MenuItem org,neg,ls,lp,hp,hb,hist,thr,gs,cs,rot,heq;
public myframe() { super("Image Enhancement"); MenuBar mb1=new MenuBar(); setMenuBar(mb1); Menu file=new Menu("File"); Menu image=new Menu("Image");
mb1.add(file);
mb1.add(image);
image.add(org=new MenuItem("Original Image")); image.add(neg=new MenuItem("Negate")); image.add(gs=new MenuItem("Grey Scale")); image.add(rot=new MenuItem("Rotate")); image.add(ls=new MenuItem("Level Slicing")); image.add(cs=new MenuItem("Constrast Stretching")); image.add(thr=new MenuItem("Thresholding")); image.add(lp=new MenuItem("Low Pass Filter")); image.add(hp=new MenuItem("High Pass Filter")); image.add(hb=new MenuItem("High Boost Filter")); image.add(hist=new MenuItem("Histogram")); image.add(heq=new MenuItem("Histogram Equalizing")); //image.add(eng=new MenuItem("Enlarge"));
op.addActionListener(this); cls.addActionListener(this);
rot.addActionListener(this); ls.addActionListener(this); cs.addActionListener(this); thr.addActionListener(this); lp.addActionListener(this); hp.addActionListener(this); hb.addActionListener(this); hist.addActionListener(this); heq.addActionListener(this); //eng.addActionListener(this); addWindowListener(this); }
else
if(s.equals("Open")) open();
else
else
if(s.equals("Negate")) neg();
else
else
if(s.equals("Rotate")) rotate();
else
else
else
else
else
if(s.equals("Histogram")) hist();
else
if(s.equals("Thresholding")) thr();
else
else
} }
public void windowClosed(WindowEvent we) {} public void windowDeiconified(WindowEvent we) {} public void windowIconified(WindowEvent we) {} public void windowActivated(WindowEvent we) {} public void windowDeactivated(WindowEvent we) {} public void windowOpened(WindowEvent we) {} public void windowClosing(WindowEvent we) {
dispose(); System.exit(0); }
abstract void open(); abstract void org(); abstract void neg(); abstract void gs(); abstract void ls(); abstract void cs(); abstract void lp(); abstract void hp(); abstract void hb(); abstract void hist(); abstract void thr(); abstract void heq(); abstract void rotate(); //abstract void eng(); }
// MENUES
{ TextField thr,ls1,ls2,ls3,ls4; Label m1,a1; Button ok,can; String val1=null,val2=null,val3=null,val4=null; int t; public mydialog(Frame p,String title,boolean m,int i) { super(p,title,m); t=i; Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel();
ls1=new TextField(4);
ls4.setText("255");
p2.add(ls4); } else if(i==0) { m1=new Label("Enter Threshold value(0-255):"); ls1=new TextField(4); p1.add(m1); p2.add(ls1); }
ok.addActionListener(this); can.addActionListener(this); }