دنیای آنها:
درست متوجه شدم، میخواهی پردازش تصویر را نه از دید فرمولهای پیچیده، بلکه از زاویهی دید خودِ پیکسلها ببینی. اینکه چه بلایی سرشان میآید و چطور «شخم زده میشوند».
بیا این ماجرا را مثل یک جامعهی بزرگ از آدمها (پیکسلها) تصور کنیم که روی یک بوم زندگی میکنند.
---
جامعهی پیکسلها را چطور تغییر میدهیم؟
هر پیکسل یک شهروند است با یک شناسنامه: مختصات (x, y) که میگوید کجا ایستاده و یک مقدار شدت روشنایی (در تصاویر خاکستری) یا یک بردار رنگ (R, G, B) که شخصیت او را مشخص میکند.
پردازش تصویر یعنی اعمال یک «قانون» یا «بخشنامه» روی این جامعه. این بخشنامهها به دو دستهی کلی تقسیم میشوند:
۱. عملیات نقطهای: «خودت را تغییر بده، همسایهات مهم نیست»
در این روش، هر پیکسل فقط به شناسنامهی خودش نگاه میکند و آن را عوض میکند. اصلاً کاری ندارد که پیکسل کناریاش چه رنگی است. این میشود دستکاری کل پیکسلها به صورت جداگانه.
مثالها از زبان یک پیکسل:
· تنظیم روشنایی: «به من گفتند مقدار R, G, B خودت را بگیر و با یک عدد ثابت جمع کن. شدهام روشنتر. همسایهام هم همین کار را کرد.»
· افزایش کنتراست: «گفتند اگر روشن هستم، روشنتر شوم، اگر تاریکم، تاریکتر. هرکسی خودش این کار را کرد.»
· منفی کردن تصویر: «گفتند هر رنگ را از ۲۵۵ کم کن. من که سفید بودم، سیاه شدم.»
· تصحیح گاما (Gamma Correction): «یک تابع غیرخطی روی تکتک ما اعمال شد.»
نتیجه: در این روش، تکتک پیکسلها تحت تأثیر قرار میگیرند و مقدارشان عوض میشود. هیچ پیکسلی دستنخورده باقی نمیماند. کل جامعه تغییر هویت میدهد.
---
۲. عملیات همسایگی (فیلترها): «جلسه بگذارید و با همسایهها تصمیم بگیرید»
اینجاست که ماجرا جالب میشود. یک «پنجره» یا «ماسک» (مثلاً یک مربع ۳x۳) روی تصویر حرکت میکند. مرکز این پنجره روی هر پیکسل که قرار بگیرد، آن پیکسل باید با همسایههایش جلسه بگذارد. مقدار جدیدش بر اساس «رأیگیری» یا «میانگین» نظرات همسایهها تعیین میشود.
اینجا دیگر همه پیکسلها لزوماً تغییر نمیکنند، بلکه ممکن است فقط آنهایی که در شرایط خاص هستند، دستکاری شوند، یا همه تغییر کنند اما ماهیت تغییرشان وابسته به اطرافشان است.
مثالها از زبان یک پیکسل:
· فیلتر میانگین (Blur): «به من گفتند بنشین با ۸ تا همسایهات، رنگهاتان را جمع بزنید و تقسیم بر ۹ کنید. من که یک پیکسل تیز و نویز بودم، الان محو و همرنگ جماعت شدم.» → اینجا همه پیکسلها مقدار جدید میگیرند، حتی اگر شبیه قبل باشند.
· فیلتر میانه (Median Filter): «گفتند رنگهای خودت و ۸ همسایهات را ردیف کن، آنی که وسط میایستد را انتخاب کن. من که یک پیکسل «فلفل نمکی» (نویز) بودم و با بقیه فرق داشتم، حذف شدم و شبیه بقیه شدم.» → همه تغییر میکنند، ولی پیکسلهای نویز حسابی ادب میشوند.
· فیلتر لاپلاسین (تشخیص لبه): «از ما خواستند ببینیم چقدر با همسایهها اختلاف داریم. من که یک پیکسل در یک سطح صاف کنار همسایههای همرنگم بودم، اختلافم صفر شد (سیاه شدم). اما آن یکی که لب یک لبه بود، اختلافش زیاد شد (سفید درخشان).» → اینجا بیشتر پیکسلها سیاه (صفر) میشوند و فقط آنهایی که در لبهها هستند، سفید (دستکاری شده) میشوند. عملاً بخش عظیمی از پیکسلها به صفر تبدیل میشوند.
---
جمعبندی نهایی: کی همه را دستکاری میکنیم، کی بعضی را؟
دستهبندی کلی چه بلایی سر جامعه پیکسلها میآید؟ مثال کدام پیکسلها شخم زده میشوند؟
عملیات نقطهای یک بخشنامهی عمومی و یکسان برای همه صادر میشود. تغییر روشنایی، کنتراست، منفی کردن، تصحیح گاما تکتک پیکسلها، بدون استثنا. مقدار همه تغییر میکند.
فیلترهای سراسری (Global Filters) هر پیکسل با همسایههایش یک کار تکراری انجام میدهد. هموارسازی (Blur)، نویززدایی (Median)، شارپ کردن همه پیکسلها مقداری جدید میگیرند، حتی اگر خیلی جزئی باشد. کل بوم یک دست تغییر میکند.
فیلترهای انتخابی (Selective Filters) قانون میگوید «اگر در یک لبه هستی، خودی نشان بده». تشخیص لبه (Edge Detection)، آستانهگذاری تطبیقی تنها پیکسلهایی که شرط خاصی دارند مقدار چشمگیر میگیرند. بقیه یا صفر میشوند یا دستنخورده میمانند.
عملیات مورفولوژیک (Morphology) «شما که در مرز بین سیاه و سفید هستید، یا حذف میشوید (Erosion) یا تکثیر میشوید (Dilation)». سایش (Erosion)، گسترش (Dilation)، باز کردن، بستن فقط پیکسلهای مرزی. پیکسلهایی که در عمق یک ناحیهی بزرگ هستند، اصلاً تکان نمیخورند.
پس به زبان ساده:
· میخواهی کل ملت تیره یا روشن شوند؟ از عملیات نقطهای و فیلترهای سراسری استفاده کن.
· میخواهی فقط مرزها مشخص شوند یا فقط نویزها حذف شوند و باقی ملت به حال خود رها شوند؟ از فیلترهای انتخابی و مورفولوژی استفاده کن.