فایلهای نمونه را میتوانید از این لینک دانلود کنید. |
---|
در دنیای دیجیتال، شهری به نام "نورسیتی" وجود داشت؛ شهری پر از نورهای رنگی که هر قسمت آن با رنگهای خاص خود مشخص شده بود. هوش مصنوعی رنگیننگار، که همه چیز را کنترل میکرد، مراقب بود که رنگها در جای درست خود قرار بگیرند.
اما یک روز، یک ویروس دیجیتالی سایهخوار به سیستم حمله کرد! این ویروس خطرناک تمام رنگهای شهر را بلعید و چیزی جز یک پسزمینهی سیاه از آن باقی نگذاشت. تنها چیزهایی که از شهر باقی ماندهاند، مستطیلها و مربعهایی با رنگهای قرمز، سبز، آبی، زرد، بنفش (ارغوانی) و خاکستری هستند که توسط ویروس بهطور تصادفی تولید شدهاند!
به عنوان "ماهانِ محاسباتی"، نابغهی ریاضی و برنامهنویسی، مأموریت شما این است که اطلاعات این اشکال را جمعآوری کرده و کمک کنید که شهر از نو ساخته شود. برای این کار باید برای هر شکل مساحت آن را (بر حسب تعداد پیکسل) محاسبه کنید. اما ویروس سایهخوار به شکلی عجیب کدگذاری شده است:
- مستطیلها دارای نقص در رنگآمیزی هستند، بنابراین برای اصلاح آنها، مساحتشان باید ۳ برابر حساب شود.
- مربعها کمتر آسیب دیدهاند، پس مساحت آنها بدون تغییر محاسبه میشود.
در نهایت شما باید مجموع مساحتها را (با توجه به تغییرات فوق) برای هر رنگ محاسبه کنید.
نحوه ارسال پاسخ
شما باید یک فایل پایتونی با نام calculate_area.py
بسازید که درون آن یک تابع با نام calculate_area
پیادهسازی شده است.
ورودی این تابع یک تصویر است (دقت کنید که منظور خود تصویر است که با استفاده از OpenCv
به صورت رنگی خوانده شده و به تابع شما ورودی داده میشود) که شامل اشکال مستطیلی و مربعی که هر کدام دارای رنگ مشخصی هستند. پسزمینهی تصویر همیشه سیاه است.
خروجی این تابع نیز یک رشته است که به فرمت کلی زیر میباشد:
- ترتیب رنگها به همان ترتیبی است که در بالا ذکر شده است. از چپ به راست (red, green, blue, yellow, purple, gray)
- اگر رنگی در تصویر وجود ندارد در رشتهی خروجی نیز نباید باشد.
- اگر هیچ رنگی در تصویر وجود نداشت، رنگ سیاه (black) به همراه تعداد کل پیکسلهای تصویر در خروجی قرار داده شود.
کتابخانههای مجاز
توجه کنید که در این سوال تنها مجاز به استفاده از numpy
و openCV
هستید .
ورودی نمونه ۱
![]() |
---|
نمونهای از تصاویر ورودی |
خروجی نمونه ۱
ارسال پاسخ برای این سؤال