grayscale_bilateral_filter.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# مثال مرشّح ثنائي الجانب (Bilateral) للتدرج الرمادي
#
# يوضح هذا المثال استخدام المرشّح ثنائي الجانب على صور التدرج الرمادي.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # تهيئة مستشعر الكاميرا.
csi0.pixformat(csi.GRAYSCALE) # أو csi.RGB565
csi0.framesize(csi.QQVGA) # أو csi.QVGA (أو غيرها)
csi0.snapshot(time=2000) # السماح للإعدادات الجديدة بأن تصبح فعالة.
clock = time.clock() # تتبع معدل الإطارات (FPS).
while True:
clock.tick() # تتبع عدد الميلي ثانية المنقضية بين استدعاءات snapshot().
img = csi0.snapshot() # التقاط صورة وإرجاعها.
# تتحكم color_sigma في مدى قرب البكسلات من حيث اللون من بعضها البعض حتى
# يتم تمويهها معًا. القيمة الأصغر تعني أنها يجب أن تكون أقرب.
# القيمة الأكبر أقل صرامة.
# تتحكم space_sigma في مدى قرب البكسلات من حيث المسافة من بعضها البعض حتى
# يتم تمويهها معًا. القيمة الأصغر تعني أنها يجب أن تكون أقرب.
# القيمة الأكبر أقل صرامة.
# تشغيل النواة (kernel) على كل بكسل في الصورة.
img.bilateral(3, color_sigma=0.1, space_sigma=1)
# لاحظ أن المرشّح ثنائي الجانب قد يُدخل عيوبًا في الصورة إذا قمت بضبط
# color_sigma/space_sigma بشكل مبالغ فيه. قم بزيادة قيم sigma حتى
# تختفي العيوب إذا رأيتها.
print(clock.fps()) # ملاحظة: تعمل كاميرا OpenMV الخاصة بك بحوالي نصف السرعة أثناء
# الاتصال بحاسوبك. يجب أن يزداد معدل الإطارات (FPS) بعد قطع الاتصال.