. .

الانطلاق في معالجة الصور

لكل فن وعلم بدايات، وخير البدايات الأصول، وهي القواعد الأساسية التي تبنى عليها بقية المفاهيم. وكلما كانت هذه القواعد راسخة في ذهن الطالب سهل عليه ما بعدها. لذا ينبغي أن يبحث طالب الفن الجديد عن المصادر المستوفية لشرطين: السهولة والوضوح، ودقة المعلومات.

في هذه التدوينة سأختصر الطريق على من يريد تعلم معالجة الصور بسرد مجموعة من المراجع والأدوات التي ستكون -بإذن الله- عوناً لكل جاد (*).

الكتب

هناك العديد من الكتب التي كتبت كي تكون مقدمة لتعلم معالجة الصور، من أبرزها الكتاب التالي:

Digital Image Processing

يغطي هذا الكتاب أغلب المواضيع الأساسية المتعلقة بمعالجة الصور، وهو من الكتب التي كثيراً ما أرجع إليها بين حين وآخر. ولهذا الكتاب نسخة مكمِّلة للبرمجة في بيئة الماتلاب (Matlab):

Digital Image Processing Using MATLAB

في رأيي، متى ما أتقنت ما في الكتابين فستكون قد اكتسبت مفاهيم ومهارات برمجية تؤهلك للإبداع في هذا المجال.

هناك العديد من الكتب في مجال معالجة الصور، وفي الحقيقة لم أطّلع على الجميع. ولكن من الكتب التي قرأتها وتصفحتها أجد هذا الكتاب هو الأفضل للمبتدئين (ومرجع ممتاز للمتقدمين).

أدوات برمجية

أفضل وسيلة لترسيخ الفهم هي التطبيق، وهي في هذا المقام البرمجة. ومتى ما ذكرت البرمجة يُفتح الجدل الذي لا ينتهي عن أفضل لغة وبيئة برمجة. في التالي لن أذكر “أفضل” لغة برمجة، ولكن سأذكر محاسن كل واحدة فيما يتعلق بمعالجة الصور:

1- ماتلاب MATLAB وبايثون Python: ما يميز هاتين اللغتين البساطة وسرعة التعلم وكتابة الأكواد، كما أنها لغات سكربت مما يعني أنك تستطيع أن تنفذ كل سطر على حدة مقارنة باللغات التالية. الماتلاب برنامج تجاري وغالي جداً، ولكن يمتاز بتخصصه في معالجة المصفوفات، كما أنه يحتوي على عدد من المكتبات المتخصصة، بما فيها مكتبة رائعة لمعالجة الصور. بالنسبة لي أكثر عملي على الماتلاب. يمتاز البايثون بأنه مجاني ويحتوي كذلك على مكتبات مجانية لمعالجة المصفوفات ومعالجة الصور. أنصح المبتدئ في معالجة الصور بالبدء بالماتلاب أو البايثون كي يركز على مفاهيم معالجة الصور بدلاً من تضييع الوقت في التفاصيل البرمجية التي تتطلبها السي والجافا.

2- لغة السي C/C++: الميزة الأساسية للبرمجة في السي السرعة، وهي مطلب أساسي للتطبيقات التي تتطلب معالجة مباشرة وسريعة للصور، كمعالجة الفيديو. ما يعيب لغة السي التعقيد وبعض الصعوبة في كتابة وفهم البرامج للمبتدئين.

3- لغة الجافا Java: تمتاز بانتشارها الواسع على كثير من البيئات والأنظمة، فمثلاً البرنامج الأساسي تستطيع أن تجعله -مع بعض التعديلات البسيطة- يعمل على الحاسب والجوال (نظام أندرويد) وكموقع انترنت.

هناك عدد من المكتبات البرمجية لمعالجة الصور لكل لغة، أشهرها مكتبة أوبن سي في OpenCV، وهي مكتوبة بلغة السي ولكن يمكن استخدامها أيضاً في البايثون والجافا.

تطبيقات غير برمجية

لمن يريد أن يجرب بعض الخوارزميات المعروفة في معالجة الصور بدون أي برمجة يستطيع أن ينزل البرنامج التالي (مفتوح المصدر): ImageJ

تستطيع أن تفتح صورة داخل البرنامج وتطبق عليها الكثير من الخوارزميات، كما أن هناك المئات من الإضافات المجانية المتاحة. من الممكن أن يُستخدم هذا البرنامج لتحليل الصور بدون أي خبرة برمجية.

 

ما سبق كان بعض المداخل لتعلم معالجة الصور، وفي اعتقادي أن من التزم بها جاداً فسوف يصل إلى مرحلة تفوق المبتدئ. يبقى بعد ذلك الخبرة والمطالعة المستمرة لآخر المستجدات والخوارزميات والتطبيقات، وذلك عن طريق متابعة مواقع الانترنت والمدونات المتخصصة، وكذلك قراءة الكتب ومتابعة المؤتمرات والمجلات العلمية للمتخصصين.

أسأل الله أن يوفق الجميع لما فيه الخير، وأن يسهل الطريق على كل طالب علم.

———————-

(*) ملاحظة: هذه النصائح وجهة نظر لي، وقد يجد غيري مداخل أفضل. للأسف كل المراجع والأدوات المذكورة باللغة الانجليزية، فلا يزال المحتوى العربي في هذا الجانب ضعيفاً جداً.

 

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *