السلام عليكم والرحمه
عندي سؤال في مادة الملتيميديا
عندنا بروجكت في دي الماده نعمل مجموعة فلترز منها sobel ,Laplacian,Perwitt وغيرها وطبعن بانترفيس وكذا
وكل فلتر له ماتركس معين يتطبق عليه واغير قيمة البكسل تبعا للماتركس الموهم لمن عملت الفلتر ماتطلع لي نفس النتيجه المتوقعه مع اني طبقت الماتركس صح !!
فممكن احد يشوف لي الكود لفلتر ال sobel ..
كود PHP:
public void Sobel()
{
this.grayscale();
int Gx=0;
int Gy=0;
Pixel pixel1,pixel2,pixel3,pixel4,pixel5,pixel6,pixel7,pixel8,pixel9=null;
for(int y=1;y<this.getHeight()-1;y++)
{for(int x=1;x<this.getWidth()-1;x++)
{
pixel1=this.getPixel(x,y);
pixel2=this.getPixel(x-1,y-1);
pixel3=this.getPixel(x,y-1);
pixel4=this.getPixel(x+1,y-1);
pixel5=this.getPixel(x-1,y+1);
pixel6=this.getPixel(x,y+1);
pixel7=this.getPixel(x+1,y+1);
pixel8=this.getPixel(x-1,y);
pixel9=this.getPixel(x+1,y);
int a1=pixel1.getRed();
int a2=pixel2.getRed();
int a3=pixel3.getRed();
int a4=pixel4.getRed();
int a5=pixel5.getRed();
int a6=pixel6.getRed();
int a7=pixel7.getRed();
int a8=pixel8.getRed();
int a9=pixel9.getRed();
Gx=-a2-2*a3-a4+a5+2*a6+a7;
Gy=-a2+a4-2*a8+2*a9-a5+a7;
//System.out.println(Gx);
//System.out.println("Gy"+Gy);
int value=(int)(Math.sqrt(Gx*Gx+Gy*Gy)) ;
// System.out.println(value);
value=Math.min(value,255);
pixel1.setColor(new Color (value,value,value));
}
}
}
الكود بـ دكتور جافا
والصوره قبل وبعد بالمرفق
وشكرا :)