استخدام إحصائيات الصورة

ماذا لو أردت معرفة متوسط اللون أو اللون ذو المساحة الأكبر في منطقة معينة؟

استخدم الإحصائيات - Statistics!

ROI منطقة الاهتمام

\ تنسيق roi هو مجموعة (tuple) من (x, y, w, h).

  • x: إحداثي x للزاوية العلوية اليسرى لمنطقة ROI
  • y: إحداثي y للزاوية العلوية اليسرى لمنطقة ROI
  • w: عرض ROI
  • h: ارتفاع ROI

الإحصائيات

image.get_statistics(roi=Auto)

حيث roi هي المنطقة المستهدفة. لاحظ أن المعاملات مثل roi وbins يجب تحديدها صراحةً، على سبيل المثال:

img.get_statistics(roi=(0,0,10,20))

إذا كتبتها هكذا img.get_statistics((0,0,10,20))، فلن يعمل ROI.

  • statistics.mean تُرجع متوسط التدرج الرمادي (0-255) (int). يمكنك أيضاً الحصول عليها عبر statistics[0].

  • statistics.median تُرجع الوسيط للتدرج الرمادي (0-255) (int). يمكنك أيضاً الحصول عليها عبر statistics[1].

  • statistics.mode() تُرجع المنوال(0-255) (int) للتدرج الرمادي. يمكنك أيضاً الحصول عليها عبر statistics[2]

  • statistics.stdev() تُرجع الانحراف المعياري لقيمة التدرج الرمادي(0-255) (int). يمكنك أيضاً الحصول عليها عبر statistics[3].

  • statistics.min() تُرجع القيمة الدنيا للتدرج الرمادي(0-255) (int). يمكنك أيضاً الحصول عليها عبر statistics[4].

  • statistics.max تُرجع القيمة القصوى للتدرج الرمادي (0-255) (int). يمكنك أيضاً الحصول عليها من statistics[5].

  • statistics.lq تُرجع الربيع الأول للتدرج الرمادي (0-255) (int). يمكنك أيضاً الحصول عليها من statistics[6].

  • statistics.uq تُرجع الربيع الثالث للتدرج الرمادي (0-255) (int). يمكنك أيضاً الحصول عليها من statistics[7].

ما سبق هو قيمة التدرج الرمادي، وفيما يلي

  • l_mean, l_median, l_mode, l_stdev, l_min, l_max, l_lq, l_uq,
  • a_mean, a_median, a_mode, a_stdev, a_min, a_max, a_lq, a_uq,
  • b_mean, b_median, b_mode, b_stdev, b_min, b_max, b_lq, b_uq,

هي المتوسط والوسيط والمنوال والانحراف المعياري والقيمة الدنيا والقيمة القصوى والربيع الأول والربيع الثالث لقنوات LAB الثلاث.

مثال

اكتشف قيمة اللون في المنطقة العلوية اليسرى.

import csi, image, time
csi0 = csi.CSI()

csi0.reset() # تهيئة الكاميرا
csi0.pixformat(csi.RGB565) # التنسيق RGB565.
csi0.framesize(csi.QVGA)
csi0.snapshot(frames=10) # تخطي 10 إطارات لتفعيل الإعدادات الجديدة
csi0.auto_whitebal(False)               # إنشاء كائن ساعة لتتبع معدل الإطارات في الثانية.

ROI=(80,30,15,15)

while(True):
    img = csi0.snapshot()         # التقط صورة وأرجع الصورة.
    statistics=img.get_statistics(roi=ROI)
    color_l=statistics.l_mode
    color_a=statistics.a_mode
    color_b=statistics.b_mode
    print(color_l,color_a,color_b)
    img.draw_rectangle(ROI)

النتيجة:

الطرفية (Terminal)

56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51

results matching ""

    No results matching ""