29-01-13, 09:55 PM
[COLOR="#800080"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقه قولي))
صدق الله العلي العظيم[/COLOR]
بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقه قولي))
صدق الله العلي العظيم[/COLOR]
بسم الله الرحمن الرحيم
[COLOR="#800000"]السلام عليكم اخواني الاعزاء هذا الدرس سيكون حول تحويل الصورة الملونة الى صورة رمادية (Gray Scale image) حيث سنستخدم طريقتين في عمل ذلك.
الطريقة الاولى:
وذلك بإستخراج معدل الالوان الثلاثة واستبدالها بالالوان الاصلية للصورة, أي اسناد القيمة الناتجة الى الالوان الثلاثة للصورة, اليك الطريقة:[/COLOR]
PHP كود :
bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
IntPtr scan0 = bmpdata.Scan0;
try
{
unsafe
{
stride = bmpdata.Stride;
remain = stride - bmp.Width * 3;
byte* p = (byte*)(void*)scan0;
for (i = 0; i < bmp.Height; i++)
{
for (j = 0; j < bmp.Width; j++)
{
byte avg =(byte) Math.Min((c[j, i].R + c[j, i].G + c[j, i].B) / 3, 255);
p[2] = p[1] = p[0] = avg;
p += 3;
}
p += remain;
}
bmp.UnlockBits(bmpdata);
}
pictureBox1.Image = bmp;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
ا[COLOR="#800000"]لطريقة الثانية:
وذلك باستخدام المعادلة التالة:[/COLOR]
PHP كود :
R * .299 + .G * .587 + B * .114
اليك الكود:
PHP كود :
bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
IntPtr scan0 = bmpdata.Scan0;
try
{
unsafe
{
stride = bmpdata.Stride;
remain = stride - bmp.Width * 3;
byte* p = (byte*)(void*)scan0;
for (i = 0; i < bmp.Height; i++)
{
for (j = 0; j < bmp.Width; j++)
{
byte avg = (byte)Math.Min(c[j,i].R * .299 + c[j,i].G * .587 + c[j,i].B * .114, 255);
p[2] = p[1] = p[0] = avg;
p += 3;
}
p += remain;
}
bmp.UnlockBits(bmpdata);
}
pictureBox1.Image = bmp;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
[COLOR="#800000"]ملاحظة: الطريقة الثانية افضل من الطريقة الاولى.
والحمد لله انتهينا من هذا الدرس والى ان القاكم في درس جديد ان شاءالله انا بانتظار تعليقاتكم واسئلتكم.
[/COLOR]
[COLOR="#A52A2A"]--------------------------------------------------------
اخوكم سجاد محمد من العراق الجريح
[/COLOR]