الكود اللي كتبته هو برنامج تفاعلي بالبايثون لمعالجة الصور باستخدام تقنيات معالجة الصور الرقمية و تحويل فورييه (FFT) لإزالة نوعين من التشويش (Noise):
الفكرة العامة:
يفتح نافذة صغيرة بـ Tkinter لاختيار صورة ونوع النويز (Periodic أو Salt & Pepper).
يقرأ الصورة ويحوّلها للتدرج الرمادي (Grayscale) للمعالجة.
يطبق تحويل فورييه (FFT) لعرض الطيف الترددي (Frequency Spectrum).
ينشئ فلاتر ترددية (Low-pass & High-pass).
بناءً على نوع النويز:
Periodic Noise: يطبق خوارزمية أوتوماتيكية لاكتشاف القمم في طيف فورييه وإزالتها.
Salt & Pepper Noise: يستخدم مرشح Median لإزالة النقط البيضاء والسوداء العشوائية.
يعرض النتائج في مخططات Matplotlib (الصورة الأصلية، الطيف، الفلاتر، الصورة بعد المعالجة).
مكونات الكود الرئيسية:
واجهة المستخدم (Tkinter):
اختيار الصورة من الجهاز.
تحديد نوع النويز (Periodic / Random).
إزالة التشويش الدوري (remove_all_periodic_noise):
يحسب طيف المقدار (Magnitude Spectrum).
ينعمه باستخدام Gaussian Filter.
يحدد القمم (التي تمثل التشويش) ب threshold ديناميكي.
يعمل قناع (Mask) ويطبقها على الـ FFT لإزالة الضوضاء.
الفلاتر الترددية (create_frequency_filters):
ينشئ قناع Low-pass (يحتفظ بالترددات المنخفضة).
ينشئ قناع High-pass (يحتفظ بالترددات العالية).
معالجة النويز العشوائي (Salt & Pepper):
يطبق Median Blur على الصورة الملوّنة.
يعرض الصورة المنقاة.
المخرجات (Outputs):
عند تشغيل البرنامج وعرض النتائج، راح يطلعلك:
الصورة الأصلية (Grayscale).
أقنعة الفلاتر (Low-pass و High-pass).
طيف فورييه الأصلي.
إذا النويز Periodic:
الطيف بعد إزالة القمم.
الصورة بعد إزالة النويز.
إذا النويز Salt & Pepper:
الصورة بعد تطبيق Median Blur.
صور إضافية تبين الترددات المنخفضة والعالية.