> 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/roi-processing/perspective-transform.md).

# Perspective Transform

تسمح لك هذه الدالة بتحديد منطقة رباعية الأضلاع على صورة ثم توليد رؤية مُصحّحة من الأعلى (perspective‑transformed) لتلك المنطقة. الواجهة تفاعلية — اختر أربعة نقاط على الصورة، اسحبها لتعديل، ويمكنك استخدام اختصارات لوحة المفاتيح للتحرير بسرعة.

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

* `Image` — الصورة المصدر التي تُعرض داخل البلوك لاختيار النقاط.

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

* `Image` — الصورة بعد تطبيق التحويل المنظوري (warped) على المنطقة المحددة.
* `Transform Matrix` — مصفوفة التحويل المنظوري (مفيدة لتمريرها إلى بلوكات أخرى تحتاج Perspective أو Homography matrix).

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

* `Interactive Image Area` — اضغط على الصورة لإضافة نقاط. تظهر النقاط على شكل مضلع أثناء إضافتها.
* `Drag Points` — انقر واسحب أي نقطة لتعديل موقعها.
* `C` — تمسح كل النقاط المحددة.
* `U` — تراجع عن آخر نقطة أضفتها.
* `Help Text` — تعليمات قصيرة داخل البلوك تذكرك بكيفية الإضافة، السحب، المسح، والتراجع.

ملاحظة: الطبقة المتراكبة تُظهر ما إذا كان المضلع مكتملًا وتُبرز الرأس الذي تحته مؤشر الفأرة لتسهيل التعديل.

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

* يعرض البلوك الصورة المتصلة بحيث يمكنك اختيار أربع نقاط تفاعليًا.
* إذا كانت النقاط أقل من أربعة، يعيد البلوك مخرجات فارغة ليعلم البلوكات التالية أن التحويل غير جاهز.
* بمجرد توفر أربع نقاط، يرتبها البلوك، يحسب حجم المستطيل الناتج من النقاط المحددة، يبني مصفوفة التحويل المنظوري، ويخرج الصورة المصححة مع `Transform Matrix`.
* يحتفظ البلوك بالتحويل الأخير المحسوب للصورة ونفس مجموعة النقاط لتجنب إعادة الحساب غير الضرورية أثناء تعديل أجزاء أخرى من السيناريو.

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

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

## 📝 تعليمات الاستخدام <a href="#usage" id="usage"></a>

1. وصل بلوك ينتج صورة إلى مدخل `Image`.
2. اضغط داخل مساحة الصورة في البلوك لتعيين ما يصل إلى أربع نقاط زاوية (بأي ترتيب).
3. اسحب النقاط لتعديل مواقعها بدقة.
4. استخدم `U` للتراجع عن آخر نقطة و`C` لمسح جميع النقاط والبدء من جديد.
5. عندما تكون النقاط الأربع موجودة، سيعطي البلوك صورة مصححة ومخرج `Transform Matrix`.

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

* استخدم `Show Image` لمعاينة الصورة المصدر أو الصورة المحوّلة في نافذة عرض أكبر أثناء ضبط النقاط.
* إذا كنت بحاجة لقص المنطقة أولًا، أضف `Image ROI Select` أو `Image ROI` قبل هذا البلوك للعمل على منطقة أصغر.
* إذا كانت الصورة المصدر كبيرة جدًا، أضف `Image Resizer` قبل البلوك لتسريع التفاعل وتقليل استهلاك الذاكرة.
* يمكن تمرير `Transform Matrix` الناتجة إلى بلوك مثل `Social Distance Detector` كـ `Perspective Matrix` لقياسات المسافات في العالم الحقيقي من العرض المحوَّر.
* احفظ النتائج المحوّلة باستخدام `Image Write` إذا رغبت بالاحتفاظ بنسخة من الصور المصححة.

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

* إذا لم يظهر أي مخرج، تأكد من تعريف أربع نقاط — البلوك لن ينتج تحويلًا حتى يكتمل المضلع.
* إذا بدت الصورة المحوّرة مشوّهة، حرّك نقاط الزوايا بسحبها؛ استخدام `Show Image` يساعد على فحص التفاصيل أثناء الضبط.
* إذا كان التفاعل بطئًا مع الصور الكبيرة، ضع `Image Resizer` قبل البلوك أو اعمل على منطقة مقصوصة باستخدام `Image ROI Select`.
* إذا أضفت نقطة في مكان خاطئ بالخطأ، اضغط `U` لإزالة آخر نقطة أو `C` لإعادة البدء.
