01-10-12, 05:11 PM
[COLOR="#800080"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهو قولي))
صدق الله العلي العظيم[/COLOR]
[COLOR="#0000FF"]إخواني الأعزاء أخواتي العزيزات السلام عليكم ورحمة الله و بركاته اسمحوا لي أن أقدم لكم خبرتي المتواضعة في عالم البرمجة بان أقدم لكم سلسلة من الدروس الخاصة في معالجة الصور(Image Processing) بلغة C#.Net وأرجو أن تنال رضاكم ولا تنسوني و والدي من صالح دعائكم.
[/COLOR]
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهو قولي))
صدق الله العلي العظيم[/COLOR]
[COLOR="#0000FF"]إخواني الأعزاء أخواتي العزيزات السلام عليكم ورحمة الله و بركاته اسمحوا لي أن أقدم لكم خبرتي المتواضعة في عالم البرمجة بان أقدم لكم سلسلة من الدروس الخاصة في معالجة الصور(Image Processing) بلغة C#.Net وأرجو أن تنال رضاكم ولا تنسوني و والدي من صالح دعائكم.
[/COLOR]
الدرس الأول: نبذة مختصرة عن معالجة الصور(Image Processing)
[COLOR="#0000FF"]الصور الرقمية: هي تمثيل للصّور الثنائية الأبعاد على الحاسوب بواسطة الصفر والواحد (01). و تتكون كل صورة رقمية على الكمبيوتر من البكسل وهو أصغر وحدة في الصورة. و كل صورة هي مصفوفة تحتوى على صفوف وأعمدة من البكسلات وكلما زادت عدد البكسلات كلما كانت الصورة أوضح.
أنواع الصور الرقمية:
1- صورة ثنائية.
2- صورة رمادية.
3- صورة ملونة.
وستجدون شرحا مفصلا عن هذه الأنواع وعن ماهية المعالجة الصورية وتطبيقاتها في الموسوعة الحرة ويكيبيديا.
وألان نأتي إلى أول كود في درسنا ألا وهي كيفية قراءة صورة ما و وضعها في الPicture Box, أولا يجب علينا أن نعطي أنفسنا الصلاحية لكي نستطيع أن نستخدم المؤشرات في قراءة وكتابة الصور وذلك باستخدام Unsafe Code.[/COLOR]
اولا افعل كما في الصورة التالية
والآن نأتي إلى الكود وهي قراءة الصورة:
PHP كود :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace FirstLesson
{
public partial class Form1 : Form
{
public int i, j, stride, remain;
public Color[,] c;
public Bitmap bmp;
public BitmapData bmpdata;
public Form1()
{
InitializeComponent();
}
private void LoadImage_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Bitmap files(*.bmp)|*.bmp|Jpeg files(*.jpg)|*.jpg|Tiff files(*.tif)|*.tif|Png files(*.png)|*.png|All Files(*.jpg;*.bmp;*.tif;*.png)|*.jpg;*.bmp;*.tif;*.png";
openFileDialog1.FilterIndex = 5;
openFileDialog1.ShowDialog();
bmp = (Bitmap)Bitmap.FromFile(openFileDialog1.FileName, false);
c = new Color[bmp.Width, bmp.Height];
bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
IntPtr scan0 = bmpdata.Scan0;
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++)
{
c[j, i] = Color.FromArgb(p[2], p[1], p[0]);
p += 3;
}
p += remain;
}
bmp.UnlockBits(bmpdata);
}
pictureBox1.Image = bmp;
}
}
}
[COLOR="#0000FF"]الحمدلله والشكر لله انتهينا من الدرس الاول اتمنى ان تنال رضاكم ولاتنسوني و والدي من صالح دعائكم وسوف اشرح لكم الكود في الاسبوع القادم انشاءالله.
اذا راى احدكم في خطأ ارجو تنبيهي بذالك اكون شاكرا لكم[/COLOR]