> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/detections-shapes/detectors/feature-detector.md).

# Feature Detector

هذا function block يجد كائنًا في صورة حية أو ثابتة عن طريق مطابقة الميزات من صورة تدريب مقدمة. يقارن النقاط المميزة بين صورة التدريب و`Input Image From Camera`، يحاول تقدير موضع ودوران الكائن، ويوفر نتيجة بصرية ورقمية.

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

* `Train Image`\
  صورة المرجع التي تحتوي الكائن المراد اكتشافه. قدّم قصًا واضحًا ومضاءً جيدًا للكائن.
* `Input Image From Camera`\
  الصورة التي سيبحث فيها البلوك عن الكائن (إطار كاميرا حي أو صورة محملة).

هذه مقابس إدخال (input sockets).

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

* `Detected Image`\
  الصورة الداخلة مع تعليقات مرئية للتطبيق عند العثور على الكائن (مثل المحيط ونقطة المركز).
* `Detect Status`\
  قيمة منطقية (`true`/`false`) تشير ما إذا تم اكتشاف الكائن أم لا.
* `Center`\
  إحداثيات (x, y) لمركز الكائن المكتشف.

هذه مقابس إخراج (output sockets).

## 🕹️ عناصر التحكم <a href="#controls" id="controls"></a>

* `Homography Type`\
  اختر الطريقة المستخدمة لتقدير التحويل الهندسي بين الصورتين.
* `Compute Type`\
  حدد تفضيل الحساب الداخلي (جودة مقابل أداء).
* `Number of features`\
  عدد النقاط/الميزات التي سيتم كشفها في `Train Image`.
* `Distance Threshold`\
  التسامح المستخدم عند مطابقة الميزات (يؤثر على قبول المطابقات).
* `K nearest`\
  عدد أقرب المطابقات التي تؤخذ بعين الاعتبار عند مقارنة الوصفات (descriptors).
* `Pyramid Decrease Ratio`\
  يتحكم بخطوات التصغير متعدد المقاييس.
* `Pyramid Levels`\
  عدد مستويات الهرم المستخدمة في المعالجة متعددة المقاييس.
* `Point Compare Type`\
  معلمة داخلية تؤثر على كيفية مقارنة النقاط.

هذه عناصر واجهة يمكنك ضبطها لتعديل سلوك الاكتشاف.

## ⚙️ آلية التشغيل <a href="#running-mechanism" id="running-mechanism"></a>

* يستخرج البلوك الميزات من `Train Image` باستخدام إعدادات الميزة/الحساب المختارة.
* ثم يبحث في `Input Image From Camera` عن ميزات متطابقة ويحاول تقدير موضع الكائن واتجاهه.
* إذا تم إيجاد تحويل صالح، يقوم البلوك بوضع تعليقات على `Detected Image` (محاط ومركز)، يضبط `Detect Status` إلى `true` ويخرج إحداثيات `Center`.
* إذا لم يتم العثور على تطابق صالح، تكون `Detect Status` = `false` ويُعاد `Center` كإحداثيات افتراضية.

البلوك يقوم بالتقييم المستمر عند الاتصال بمصادر حية، لذا فإن تعديل عناصر التحكم يغيّر السلوك تقريبًا في الوقت الحقيقي.

## ✨ الميزات الرئيسية <a href="#features" id="features"></a>

* اكتشاف قائم على الميزات قوي يتعامل مع التدوير وتغير المقياس.
* ضبط متعدد المعلمات للموازنة بين الجودة والأداء.
* ملاحظات بصرية عبر `Detected Image` لتأكيد النتائج.
* مخرجات تشمل حالة منطقية وموقعًا دقيقًا للمركز لاستخدامها في منطق لاحق.

## 📝 إرشادات الاستخدام <a href="#usage" id="usage"></a>

1. قدّم مثالًا مقصوصًا وواضحًا للكائن في `Train Image`. يفضّل صورًا ذات نسيج أو زوايا مميزة.
2. وصل إطار الكاميرا أو صورة إلى `Input Image From Camera`.
3. ابدأ بقيم متوسطة: ضع `Number of features` بعدد مئات قليلة و`Distance Threshold` بقيمة وسطى.
4. شغّل النظام وراقب `Detected Image`. عدّل `Homography Type`، `Number of features`، `Distance Threshold`، و`K nearest` لتحسين الموثوقية.
5. استخدم `Detect Status` (القيمة المنطقية) لتشغيل إجراءات (تسجيل، حفظ، عدّ) أو مرّر `Center` إلى بلوكات أخرى.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* إذا اختلفت مقاييس الكائن والكاميرا، استخدم `Image Resize` قبل هذا البلوك لكي تكون صورة التدريب والصورة الداخلة أقرب في المقياس.
* اقتطع منطقة البحث باستخدام `Image ROI Select` لتسريع الاكتشاف وتجنب المطابقات الخاطئة من الخلفيات المزدحمة.
* حسّن المتانة في ظروف الضوضاء باستخدام `Blur` لإزالة الضوضاء عالية التردد، أو استخدم `Contrast Optimization` لتحسين التباين قبل الاكتشاف.
* استخدم `Show Image` لمعاينة نتائج الاكتشاف تفاعليًا أثناء ضبط عناصر التحكم.
* للرسم والتقارير، اجمع مع `Draw Detections` لتراكب الاكتشافات بشكل منظم على الصور الناتجة.
* إذا كان المطابقة بالشكل (template-based) أكثر ملائمة لكائنك، فجرّب بلوك `Find Object` كبديل أو تكميلي.
* لتخزين أمثلة أو نتائج للمراجعة لاحقًا، اجمع مع `Image Logger`.

(التلميحات أعلاه تشير إلى function blocks المتاحة التي يمكنك دمجها في تدفق العمل.)

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* لا يوجد اكتشاف: زد `Number of features`، اسهل `Distance Threshold`، أو قدّم صورة تدريب أوضح. جرّب قيم مختلفة لـ `Homography Type`.
* إيجابيات كاذبة: قلّل `Number of features` أو شدّد `Distance Threshold`. اقتطع الصورة باستخدام `Image ROI Select` لإزالة الخلفيات المربكة.
* أداء بطيء: خفّض `Number of features`، قلّل مستويات الهرم، أو نفّذ بحثًا في منطقة أصغر. قم بعملية قبْلية باستخدام `Image Resize` لتقليل أبعاد الإدخال.
* نتائج ضعيفة في حالة التباين المنخفض: طبق `Contrast Optimization` أولًا أو التقط صورة تدريب عالية الجودة.

إذا بقيت النتائج متقلبة، قم بالتعديل التدريجي لعناصر التحكم واستخدم `Show Image` لتأكيد التغييرات بصريًا.
