seyedVB
سه شنبه 31 فروردین 1389, 01:53 صبح
سلام . من دارم با سی شارپ فیلتر Blur رو می نویسم . و یک الگوریتم هست که می گه
رنگ یک پیکسل باید میانگین رنگ های چهار طرفش(بالا ، پایین ، چپ ، راست ) باشه .
من اینو نوشتم ولی Output اصلا شبیه Blur نیست .
شبیه اینه :
http://sites.google.com/site/parkhidpage/filecap/isitblur.jpg?attredirects=0
Bitmap bitmap = new Bitmap(sapPicture.Image);
for(int x=0;x<bitmap.Width-1;x++)
for (int y = 0; y <bitmap.Height-1; y++)
{
if (y>=1) Up = bitmap.GetPixel(x, y - 1);
if (x >= 1) Left = bitmap.GetPixel(x - 1, y);
Down = bitmap.GetPixel(x, y + 1);
Right = bitmap.GetPixel(x + 1, y);
int avg= Up.ToArgb() + Down.ToArgb() + Left.ToArgb() + Right.ToArgb();
bitmap.SetPixel(x, y, Color.FromArgb(avg/4));
}
//displaying the effect
sapPicture.Image = bitmap;
رنگ یک پیکسل باید میانگین رنگ های چهار طرفش(بالا ، پایین ، چپ ، راست ) باشه .
من اینو نوشتم ولی Output اصلا شبیه Blur نیست .
شبیه اینه :
http://sites.google.com/site/parkhidpage/filecap/isitblur.jpg?attredirects=0
Bitmap bitmap = new Bitmap(sapPicture.Image);
for(int x=0;x<bitmap.Width-1;x++)
for (int y = 0; y <bitmap.Height-1; y++)
{
if (y>=1) Up = bitmap.GetPixel(x, y - 1);
if (x >= 1) Left = bitmap.GetPixel(x - 1, y);
Down = bitmap.GetPixel(x, y + 1);
Right = bitmap.GetPixel(x + 1, y);
int avg= Up.ToArgb() + Down.ToArgb() + Left.ToArgb() + Right.ToArgb();
bitmap.SetPixel(x, y, Color.FromArgb(avg/4));
}
//displaying the effect
sapPicture.Image = bitmap;