در تصویرِ دودویی، «کنارِ هم» به تعریفِ همسایگی وابسته است. با اتصالِ چهارتایی فقط ضلعها همسایهاند؛ با اتصالِ هشتتایی تماسِ قطری هم وصل میشود. پنج پیکسلِ روشنِ یک ماسکِ کوچک، بسته به همین قرارداد، میتوانند پنج مؤلفه یا یک مؤلفه بسازند؛ این شمارش، تعدادِ اشیایِ واقعی را تشخیص نمیدهد.
پنج نقطه در گوشهها و مرکز
1 0 1
0 1 0
1 0 1این ماسکِ اصیل سه سطر و سه ستون دارد. صفر پسزمینه و یک foreground است؛ سطر و ستون از صفر شماره میگیرند. در چهارتایی، هیچیک از پنج پیکسلِ یک با ضلع به دیگری نرسیده است. هرکدام یک عضوِ تنها و در نتیجه یک مؤلفهاند.
در هشتتایی، مرکز با هر چهار گوشه تماسِ قطری دارد. مسیرِ گوشهٔ بالاچپ به پایینراست میتواند از مرکز بگذرد؛ پس همهٔ پنج نقطه در یک مجموعه قرار میگیرند. این تغییر فقط یک گزینهٔ زیباییِ نمایش نیست؛ پارتیشنِ خروجی را عوض میکند.
BFS فقط روی foreground راه میرود
کدِ محدود در ترتیبِ سطر و ستون جلو میرود. از هر یکِ دیدهنشده، صفِ BFS را آغاز میکند و فقط همسایههایِ داخلِ مرز با مقدارِ یک را میافزاید. همسایگیها دوطرفهاند؛ هیچ اتصال از انتهایِ یک سطر به ابتدایِ سطرِ بعدی با تختسازیِ غلط ساخته نمیشود.
در ماسکِ نمونه، label چهارتایی[[۱، ۰، ۲]، [۰، ۳، ۰]، [۴، ۰، ۵]] است. در هشتتایی، تمامِ پنج یک، label۱ دارند. این عددها شناسهٔ اجرایِ محلیاند؛ شمارهٔ متفاوتِ label در روشِ دیگر لزوماً نشانِ پارتیشنِ متفاوت نیست.
| همسایگی | مؤلفهها | اندازه |
|---|---|---|
| چهارتایی | ۵ مجموعهٔ جدا | هرکدام ۱ پیکسل |
| هشتتایی | ۱ مجموعه | ۵ پیکسل |
اندازه و کادر را همراهِ مجموعه بنویسیم
برای هر مؤلفه، فهرستِ مختصات، تعدادِ پیکسل و bbox با انتهایِ باز ثبت میشود. کادرِ مجموعهٔ هشتتایی[۰، ۰، ۳، ۳] است؛ یعنی envelope از سطر ۰ تا پیشاز ۳ و ستون ۰ تا پیشاز ۳. این مستطیل شاملِ صفرهایِ داخل نیز هست و ماسکِ کاملِ مؤلفه را جایگزین نمیکند.
در چهارتایی، هرکدام از پنج کادر یک خانه را دربرمیگیرد. از این دادهٔ مصنوعی نمیگوییم پنج شیء شناسایی شدهاند؛ اگر دو شیء در ماسکِ واقعی به هم بچسبند، ممکن است یک مؤلفه شوند. کلاسِ معنایی و هویتِ نمونه به شواهدِ دیگری نیاز دارند.
شمارهٔ label را با حقیقت اشتباه نگیریم
مرجعِ مستقل، گرافِ تمامِ پیکسلهایِ foreground را میسازد و با بستارِ بولیِ Floyd دسترسی را حساب میکند. نتیجهٔ BFS به مجموعههایِ مرتبِ مختصات تبدیل و با همین پارتیشن مقایسه میشود؛ صرفِ برابرشدنِ تعداد یا آرایهٔ شمارهها معیارِ پذیرش نیست.
تمام ۵۱۲ ماسکِ ممکنِ ۳×۳ با هر دو همسایگی واقعاً کنترل شدهاند؛ در مجموع ۱۰۲۴ حالتِ ماسک/اتصال، نه ۱۰۲۴ ماسکِ متمایز. ماسکِ خالیِ foreground، پر، تکپیکسل و انتقالِ سطر و ستون هم جدا آزمایش شدهاند. پارتیشنِ transpose باید همان مختصاتِ جابهجاشده باشد.
این پوشش با کتابخانهٔ عمومی فرق دارد
هفت ورودیِ نامعتبر، از آرایهٔ پلهای، عددِ ۲ و bool تا اتصالِ ۶، ورودیِ خالی و اندازهٔ زیاد رد میشوند. تنها ماسکِ صحیحِ دودویی با ابعادِ ۱ تا ۶ پذیرفته میشود؛ ساختارِ همسایگیِ سفارشی ارائه نشده است. SciPy بهطور عمومی ناصفرها را foreground میداند؛ این تمرین آن API را اجرا یا کامل بازسازی نکرده است.
انواعِ segmentation از برچسبِ معنایی و نمونه آغاز میکند و SCC دسترسیِ دوطرفه در گرافِ جهتدار را میسنجد. اینجا مجموعهٔ پیکسل از ماسکِ دودویی به دست میآید. ادامه در مبانی هوش مصنوعی؛ تشخیصِ خودکار، OCR، دقتِ مدل یا خدمتِ بیناییِ اپرا از این شمارش نتیجه نمیشود.
فایل تمرین و منبع
کد کاملِ تمرینِ مستقل و کنترلها؛ Python · ورودی و تمامِ خروجیِ اجرای واقعی؛ JSON
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.