لمحة جافاوية 19: معالجة الصور الرقمية - الجزء الثاني
أغسطس 10th, 2008 بواسطة: admin |
السلام عليكم
لديه في هذه الفترة فكرة جديدة
أعتقد أني سأغير تاريخ المنتديات الحديثة بها
احم احم
واثق من أني مجنون فوق العادة
لا تسألوني عن الفكرة
فالأفكار في هذه الأيام تساوي الذهب بحد ذاته
على العموم إن عشنا
ولم يستطيع أحد أن يقنعني أني واهم أو مجنون
فسترونها بإذن الله
نعود إلى موضوع اللمحة
أنا عنيد في الغالب
لكن بما أني وعدتكم أني سأكمل
فأجد أنه لا مفر من الإكمال
للذين جاؤوا متأخرين يجب عليك مراجعة اللمحة رقم 16
لمحبي القراءة المقطعة يمكنك الاستمرار معنا
لكني أضمن لكم أنكم لن تستفيدوا الكثير
تكلمنا في المرة السابقة عن RGBImage
وقمنا بفتح صورة من هذا النوع
وعرضناها في إطار جديد
هذا يعني أنا لم ندخل إلى عالم معالجة الصور
لكي تعالج أي صورة يجب أن يكون لديك تصور عام عن الصور
وكيفية تمثيلها في الكمبيوتر
الصورة هي عبارة عن مجموعة من النقط pixcels
كل نقطة تتكون من مجموعة من البتات
كل نقطة لها إحداثيين x,y يمثل مكانها في الصورة
تمثل الصورة على شكل مصفوفة ثنائية الأبعاد
كل عنصر من المصفوفة يحتوي على مجموعة من البايتات على حسب وضوح الصورة
لدينا أنوع من الصور على حسب الألوان التي تتشكل منها أهمها:
1-صورة RGB
2-صورة رمادية gray
3-صورة ثنائية binary
في الحزمة التي تحدثنا عنها مسبقاً
توجد هذه الأنواع من الصور بالمسميات التالية على حسب الترتيب
1-RGBImage
2-IntensityImage
3-BinaryImage
نلاحظ اختلاف في اسم الصورة الرمادية إلى اسم الصورة الكثافية
وتسمى بهذا الاسم لأنها تعتمد على معدل الثلاث ألوان RGB
نبدأ مع الصورة RGB
وهي اختصار للألوان أحمر أخضر أزرق
هذه الصورة تقوم على المبدأ التالي
كل لون من الألوان الثلاثة له 256 تدرج من 0-255
تمزج الثلاث تدرجات مع بعضها البعض لتشكل لون يظهر على الشاشة
وعلى هذا لدينا 256*256*256 من الألوان
عدد مهول بصراحة
في حزمتنا هذه تستطيع الحصول على كل لون على حدة
من خلال الدوال getRed getBlue getGreen
هذه الدوال ترجع مصفوفة ثنائية الأبعاد من النوع short
تستطيع تغيير أي لون في الصورة
عن طريق الدوال التالية setRed setBlue setGreen
هذه هي الدوال الأهم بالنسبة لنا كمعالجين للصور الرقمية
هناك أيضاً getHeight getWidth
وهذه تساعدك على تحديد أبعاد الصورة
وهناك الدالة حفظ لتحفظ الصورة الناتجة عن المعالجة
rgbImage.save(filename);
وتقوم بتحديد هيئة الصورة Format مثل bmp png
على حسب الجزء ما بعد النقطة في filename
وهناك دالة تحفظ بصيغة jpeg المضغوطة
rgbImage.saveAsJPEG(filename, quality);
تحدد الجودة بين 0.0-1.0
يكفي اليوم كلاماً
قوموا ببعض المحاولات عليها
ربما يكون هناك تدوينة أخرى أو تدوينتين عن معالجة الصور الرقمية
لكني لا أعدكم بشيء
تحياتي