> 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/msharya-nmwthjyh/tile-width-measurement.md).

# قياس عرض البلاط

<figure><img src="/files/zjEXxHmgTQ85HuUKGVCp" alt=""><figcaption></figcaption></figure>

يمكن أن تكون القياسات تحدياً اعتماداً على سياق المشروع. تُتيح لك دوال AugeLab Studio الجاهزة إجراء قياسات سهلة وسريعة حتى في مثل هذه الحالات المعقدة.

في هذا المثال سنتعلّم كيفية قياس عرض (أي المسافة الفعلية) لبلاطة خشبية.

أولاً: استخدم الدالة [Load Image](/arabic/alblwkat-alwzyfyh/blocks-reference/input-output/image-inputs/load-image.md) وحمّل الملف wood.jpg من مجلد الصور التجريبية المرفق مع AugeLab Studio.

<figure><img src="/files/MZ7zWYyLZ41KmrnNGNLo" alt=""><figcaption></figcaption></figure>

هدفنا هو قياس عرض كل بلاطة وطباعته. بعد ذلك، نحتاج إلى معالجة الصورة مسبقاً لتقليل الضوضاء التي قد يضيفها الكاميرا أو المحيط. في هذه الحالات، دالة [Blur](/arabic/alblwkat-alwzyfyh/blocks-reference/image-transformations/color-filters/blur.md) مع خيار **Median Blur** تعد مناسبة جداً. أنشئ المنطق التالي:

<figure><img src="/files/MZ7zWYyLZ41KmrnNGNLo" alt=""><figcaption></figcaption></figure>

نحن نحتفظ بقيمة *Kernel Size* على 3 للحفاظ على المعالجة المسبقة عند الحد الأدنى، لأن أي معالجة زائدة قد تؤثر على نتيجة القياس. بعد ذلك سنستخدم دالة [Histogram on Line](/arabic/alblwkat-alwzyfyh/blocks-reference/image-transformations/analysis/histogram-on-line.md).

تقوم دالة **Histogram on Line** باكتشاف الحواف الحادة تلقائياً وتخزين مواقعها كنقاط استناداً إلى قيمة العتبة والموقع المعطيين. أنشئ المنطق التالي:

<figure><img src="/files/duJYvuPWba4qC4tVQB8y" alt=""><figcaption></figcaption></figure>

هنا نخبر بلوك **Histogram on Line** أن يحسب الحواف عند البكسل الأفقي رقم 100، وأن يبحث عن الحواف التي تتجاوز قيمة 100 (النطاق يكون بين 0-255).

موقع الخط الأفقي للكشف (المقبس الثاني) مهم جداً، لأن العوامل الأخرى قد تسبب اكتشافات خاطئة بسهولة. لنجرّب وضع 350 ونرى ماذا يحدث:

<figure><img src="/files/xvVzXbTnMq5NfnV4noCd" alt=""><figcaption></figcaption></figure>

اختيار خط أفقي يحتوي على تشويشات أكثر سبب اكتشافات خاطئة. لذلك يُنصح دائماً باختيار خط يتأثر بالضوضاء والبيئة أدنى ما يمكن.

بعد أن حسبنا مواقع الحواف لكل بلاطة بنجاح، يمكننا حساب عرض البلاطة الأولى بإضافة بعض البلوكات.

أولاً، سنستخدم المخرج *Peak Mean Locations* من بلوك **Histogram on Line**. هذا المخرج يتكون من [قائمة](/arabic/alblwkat-alwzyfyh/sockets.md#purple-position) من المواقع:

<figure><img src="/files/guTPUQBMdakZ0ni0g5FK" alt=""><figcaption></figcaption></figure>

كل موقع يحتوي على الإحداثيات الأفقية والعمودية (x, y) لمواقع الذروة. يمكننا حساب المسافة بين كل نقطتين إما باستخدام بلوك [Demux](/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/logic/demux.md)، أو باستخدام بلوك [Measure Position Distance](/arabic/alblwkat-alwzyfyh/blocks-reference/image-transformations/analysis/measure-position-distance.md).

استخدم بلوك [List Operations](/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/data-operations/list-operations.md) واختر **get** من القائمة المنسدلة. اتبع المنطق أدناه:

<figure><img src="/files/my7CCEKlG3meBm1942EQ" alt=""><figcaption></figcaption></figure>

المنطق أعلاه يختار العنصر الأول بتزويد صفر (0) والعنصر الثاني بتزويد واحد (1). باستخدام [Measure Position Distance](/arabic/alblwkat-alwzyfyh/blocks-reference/image-transformations/analysis/measure-position-distance.md) يتم حساب مسافات x-y والمسافة الإقليدية وعرضها.

قد تلاحظ أن مسافة y تساوي صفر لأن كل النقاط تقع على نفس الخط الأفقي.

هذا كل شيء! لقد حسبت بنجاح عرض البلاطة الأولى.

### حساب أطوال جميع البلاطات <a href="#calculating-all-tile-widths" id="calculating-all-tile-widths"></a>

الآن، دعنا نحسب باقي الأطوال باستخدام العمليات على القوائم والمعالجة الدفعية.

باستخدام نفس بلوك **List Operations**، سنستخدم خيار *pop* من القائمة. خيار Pop يزيل العنصر عند الفهرس المحدد من القائمة. أنشئ المنطق التالي:

<figure><img src="/files/jCaR1P7ZL4z9UAQe0lSp" alt=""><figcaption></figcaption></figure>

بلوك **List Operations** يقوم أولاً بنسخ القائمة المقدمة ثم يحسب النتيجة المطلوبة. أنشأنا قائمة بمواقع الذروة بدون العنصر الأول، وأنشأنا قائمة أخرى بإزالة العنصر الأخير فقط.

باستخدامهما مع [Batch Processing](/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/flow-control/batch-processing.md) ومع [Data Type Converter](/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/data-operations/data-type-converter.md)، يمكننا حساب الفروقات المكانية بين كل نقاط الذروة:

<figure><img src="/files/cO5YdV4jpmFA8Y9j0gWO" alt=""><figcaption></figcaption></figure>

من المهم استخدام [Data Type Converter](/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/data-operations/data-type-converter.md) عند التعامل مع Batch Processing. إذا استقبل بلوك دُفعة (batch)، يعمل في وضع الدُفعة. استخدم خيار *Batch2List* من قائمته للعودة إلى وضع التشغيل العادي.

هذا كل شيء! لقد حسبت عرض جميع البلاطات بنجاح.
