نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

فیلتراسیون. الگوریتم تیز کردن

این مقاله نه تنها در مورد رایج ترین فیلترهای پردازش تصویر صحبت می کند، بلکه الگوریتم های عملکرد آنها را نیز به شکل واضح توصیف می کند. هدف این مقاله در درجه اول برنامه نویسانی است که درگیر پردازش تصویر هستند.

ماتریس پیچیدگی

فیلترهای زیادی با استفاده از ماتریس کانولوشن وجود دارد که در زیر به توضیح اصلی آنها خواهیم پرداخت.

ماتریس کانولوشن ماتریسی از ضرایب است که در مقدار پیکسل تصویر "ضرب" می شود تا نتیجه مطلوب حاصل شود.
در زیر کاربرد ماتریس کانولوشن آورده شده است:

Div ضریب نرمال سازی است به طوری که میانگین شدت بدون تغییر باقی می ماند.

در مثال، ماتریس 3x3 است، اگرچه اندازه آن می تواند بزرگتر باشد.

فیلتر تاری

رایج ترین فیلتری که بر اساس ماتریس کانولوشن استفاده می شود، فیلتر تاری است.

معمولاً ماتریس مطابق با نرمال (قانون گاوس) پر می شود. در زیر یک ماتریس تاری 5×5 وجود دارد که با توزیع گاوسی پر شده است.

ضرایب از قبل نرمال شده اند، بنابراین div برای این ماتریس یک است.

قدرت تاری به اندازه ماتریس بستگی دارد.

شایان ذکر است شرایط مرزی (این مشکل برای همه فیلترهای ماتریسی مربوط است). پیکسل بالا سمت چپ یک "همسایه" در سمت راست خود ندارد، بنابراین، ما چیزی نداریم که ضریب ماتریس را در آن ضرب کنیم.

2 راه حل برای این مشکل وجود دارد:

1. اعمال فیلتر فقط بر روی تصویر "پنجره" که مختصات سمت چپ را دارد گوشه بالاو برای سمت راست پایین. kernelSize – اندازه ماتریس. عرض، ارتفاع - اندازه تصویر.

نیست بهترین راه، زیرا فیلتر روی کل تصویر اعمال نمی شود. اگر اندازه فیلتر بزرگ باشد، کیفیت بسیار آسیب می بیند.

2. روش دوم (افزودن) مستلزم ایجاد یک تصویر میانی است. ایده این است که یک تصویر موقت با ابعاد (عرض + 2 * kernelSize / 2، ارتفاع + 2 * kernelSize / 2) ایجاد کنید. تصویر ورودی در مرکز تصویر کپی می شود و لبه ها با بیرونی ترین پیکسل های تصویر پر می شوند. تاری روی بافر میانی اعمال می شود و سپس نتیجه از آن استخراج می شود.

این روش از نظر کیفیت هیچ کاستی ندارد اما محاسبات غیر ضروری را می طلبد.

فیلتر تاری گاوسی دارای پیچیدگی O(hi * wi * n *n) است، که در آن hi، wi ابعاد تصویر، n اندازه ماتریس (هسته فیلتر) است. این الگوریتم را می توان با کیفیت قابل قبولی بهینه کرد.

هسته مربع (ماتریس) را می توان با دو هسته یک بعدی جایگزین کرد: افقی و عمودی. برای کرنل اندازه 5 آنها به شکل زیر خواهند بود:

فیلتر در 2 پاس اعمال می شود: ابتدا افقی و سپس عمودی به نتیجه (یا برعکس).

پیچیدگی از این الگوریتم O (hi * wi * n) + O (hi * wi * n) = 2 * O (hi * wi * n) خواهد بود که برای اندازه هسته بزرگتر از دو، سریعتر از روش سنتی ماتریس مربع است.

فیلتر وضوح

برای بهبود وضوح، از ماتریس زیر استفاده کنید:

این ماتریس اختلاف مقادیر را در مرزها افزایش می دهد. Div برای این ماتریس 1 است.

که در برنامه GIMPیک فیلتر "Convolution Matrix" وجود دارد که جستجو برای تبدیل ماتریس مورد نیاز شما را ساده می کند.

بیشتر اطلاعات دقیقمی توانید اطلاعاتی در مورد فیلترها بر اساس ماتریس پیچیدگی در مقاله پیدا کنید.

فیلتر میانه

فیلتر میانی معمولاً برای کاهش نویز یا "صاف کردن" یک تصویر استفاده می شود.

این فیلتر با ماتریس هایی با اندازه های مختلف کار می کند، اما بر خلاف ماتریس کانولوشن، اندازه ماتریس تنها بر تعداد پیکسل های در نظر گرفته شده تأثیر می گذارد.

الگوریتم فیلتر میانهبعد:

برای پیکسل فعلی، پیکسل هایی که در ماتریس می افتند مرتب می شوند و مقدار متوسط ​​از آرایه مرتب شده انتخاب می شود. این مقدار خروجی پیکسل فعلی است.

در زیر کار فیلتر میانه برای اندازه هسته سه است.

فیلترهای رشد و فرسایش به ترتیب برای به دست آوردن انبساط یا انقباض مورفولوژیکی عمل می کنند. به زبان ساده، برای تصاویر این به معنای انتخاب پیکسل با حداکثر یا حداقل شدت از محله است.

در نتیجه برافزایش، اجسام روشن بزرگتر می شوند، در حالی که فرسایش باعث بزرگتر شدن اجسام تاریک می شود.

این فیلتر از یک تصویر ورودی و یک ماتریس باینری استفاده می کند. ماتریس باینری شکل همسایگی را تعیین می کند. به طور معمول محله دایره ای شکل است.

فیلتر build-up را می توان برای افزایش نقاط برجسته و انعکاس روشن استفاده کرد.

نتیجه

در این مقاله برخی از فیلترهای پردازش تصویر، الگوریتم ها و ویژگی های کاربردی آنها توضیح داده شده است.

تصاویری که توسط سیستم‌های نوری-الکترونیکی مختلف تشکیل شده و با استفاده از گیرنده‌های مختلف ضبط می‌شوند، توسط انواع مختلف تداخل تحریف می‌شوند. اعوجاج تصویر توسط تمام اجزای دستگاه تصویربرداری، از سیستم روشنایی شروع می شود (به عنوان مثال، نور ناهموار یک شی). تحریف های معرفی شده سیستم نوری، در مرحله طراحی آن شناخته می شوند و انحرافات نامیده می شوند. اعوجاج های ایجاد شده توسط گیرنده های تابش الکترونیکی، مانند ماتریس های CCD، نویز الکترونیکی نامیده می شود. تداخل کار را دشوار می کند تجزیه و تحلیل بصریتصاویر و پردازش خودکار آنها

کاهش اثر تداخل با فیلتر کردن به دست می آید. هنگام فیلتر کردن، روشنایی (سیگنال) هر نقطه از تصویر اصلی که توسط نویز تحریف شده است، با مقدار دیگری از روشنایی جایگزین می شود که کمترین میزان تحریف شده توسط نویز شناخته می شود. برای انجام فیلتر کردن، لازم است اصولی برای چنین تبدیل‌هایی ایجاد شود، که مبتنی بر این واقعیت است که شدت تصویر در امتداد مختصات فضایی کندتر از عملکرد نویز تغییر می‌کند. در موارد دیگر، برعکس، تغییرات شدید در روشنایی نشانه یک سیگنال مفید است.

در روش های فیلترینگ برای ارزیابی سیگنال واقعیدر نقطه ای از کادر، یک مجموعه خاص ( محله) نقاط همسایه، با بهره گیری از شباهت خاصی از سیگنال در این نقاط. مفهوم همسایگی کاملا مشروط است. یک محله را فقط نزدیکترین همسایگان در قاب می‌توانند تشکیل دهند، اما محله‌هایی می‌توانند بسیار زیاد و قوی باشند. نقاط دوردستقاب در این حالت، میزان تأثیر (وزن) نقاط دور و نزدیک بر تصمیمات اتخاذ شده توسط فیلتر در یک نقطه مشخص از کادر کاملاً متفاوت خواهد بود. بنابراین، ایدئولوژی فیلترینگ مبتنی بر استفاده منطقی از داده ها از نقطه عملیاتی و اطراف آن است.

هنگام حل مسائل فیلتر، از مدل های احتمالی تصویر و نویز استفاده می شود و معیارهای بهینه آماری اعمال می شود. این به دلیل ماهیت تصادفی نویز و تمایل به به دست آوردن حداقل میانگین اختلاف بین نتیجه پردازش و سیگنال ایده آل است. تنوع روش ها و الگوریتم های فیلترینگ با تنوع گسترده ای همراه است مدل های ریاضیسیگنال ها و تداخل، و همچنین معیارهای مختلف بهینه.

بگذارید مقدار روشنایی تصویر باشد - سیگنال مفید در تقاطع من-خط و jستون هفتم، و تصویر مشاهده شده در ورودی فیلتر توسط مدل توضیح داده شده است:

در اینجا مقدار تداخل در نقطه با مختصات است (من، ج), f()تابعی است که تعامل سیگنال و نویز را توصیف می کند و منو جی– تعداد سطرها و ستون ها به ترتیب در کادر.

شکل 1 نمونه هایی از محله ها را نشان می دهد انواع مختلف، به عنوان مجموعه ای از نقاط به تصویر کشیده شده است. مرکز محله، نقطه کاری که در آن پردازش انجام می شود، نقطه دارای مختصات است (من، ج).

برنج. 1 نمونه هایی از انواع مختلف محله ها

بسته به نوع همسایگی، بین فیلتر تصویر علی (الف)، غیر علی (ب) و نیمه علی (ج) تمایز قائل می‌شود. مفهوم علیت (رابطه علت و معلولی) با رابطه بین مختصات نقطه فعلی و نقاط موجود در همسایگی همراه است. اگر هر دو مختصات (شماره ردیف و شماره ستون) تمام نقاط همسایه از مختصات مربوط به نقطه فعلی تجاوز نکند، همسایگی و پردازش با استفاده از آن نامیده می شود. علّی. اگر نقاط یک محله اصل علیت را برآورده کند، فیلتر بر اساس استفاده از چنین همسایگی نامیده می شود. غیر سببی. اگر در بین نقاط همسایه نقاطی وجود داشته باشد که مختصات آنها در یک جهت از نقطه عملیاتی تجاوز نمی کند، اما در جهت دیگر از آن تجاوز می کند، فیلترینگ است. نیمه سببیفیلتر کردن

با فیلتر خطی، اثر خروجی توسط ترکیب خطیداده های ورودی:

در این بیان - نتیجه فیلتر کردن سیگنال مفید در یک نقطه فریم با مختصات (من، ج), S –مجموعه ای از نقاط تشکیل دهنده یک همسایگی - ضرایب وزنی که مجموع آنها را نشان می دهد پاسخ ضربه ای دو بعدی (IR).اگر منطقه اسمحدود است، سپس پاسخ ضربه دارای طول محدود است و فیلتر را فیلتر FIR می نامند. در غیر این صورت، پاسخ ضربه ای با طول بی نهایت است و فیلتر را فیلتر IIR می نامند. پاسخ ضربه به مختصات نقطه ای که در آن اثر خروجی تعیین می شود، بستگی ندارد. رویه های پردازش تصویر که دارای خاصیت مستقل بودن از مختصات هستند نامیده می شوند همگن (ایزوپلاناتیک).

رایج‌ترین معیار بهینه‌سازی مورد استفاده برای ارزیابی کیفیت پردازش، معیار حداقل میانگین مربعات خطا است. در رابطه با فیلتر کردن، عبارت آن را به شکل زیر می نویسیم:

که یک نیاز اضافی برای پاسخ ضربه ای فیلتر است.

به طور بالقوه بهترین نتایجفیلتر کردن با استفاده از اصل غیر علّی به دست می آید، زیرا این اصل مبتنی بر استفاده از تمام داده های اولیه هنگام پردازش هر نقطه از قاب است.

نتیجه فیلتر خطی برای یک پنجره معین (برای یک پیکسل مرکزی معین) با فرمول ساده زیر توصیف می شود:

$$ \begin(gather) \tag(1) \mbox(Im)" = \sum\limits_(i= -\textrm(hWinX))^(\textrm(hWinX))~\sum\limits_(j= - \textrm(hWinY))^(\textrm(hWinY)) (\mbox(Im)\cdot \mbox(Mask))، \end(جمع آوری) $$

که در آن $\mbox(hWinX) = [\mbox(WinX)/2]$، $\mbox(hWinY) = [\mbox(WinY)/2]$ نصف عرض و نیم ارتفاع پنجره فیلتر است، به ترتیب (در مورد پنجره $3\times 3$ هر دو مقدار برابر 1 هستند).

نتیجه اعمال عملیات (1) روی تمام پیکسل های تصویر Im$$ $\it(convolution)$ تصویر Im with mask mask نامیده می شود.

میانگین متحرک در پنجره

ساده ترین شکل پنجره خطی در حوزه فضایی \it (میانگین متحرک) در پنجره است. نتیجه چنین فیلتری، مقدار انتظار ریاضی محاسبه شده روی تمام پیکسل های پنجره است. از نظر ریاضی، این معادل کانولوشن با ماسکی است که عناصر آن همه برابر با $1/n$ هستند، که در آن $n$ تعداد عناصر ماسک است. به عنوان مثال، یک ماسک میانگین متحرک با اندازه $3 \ برابر 3 $ به نظر می رسد

$$ \frac(1)(9)\times \begin(vmatrix) 1&1&1\cr 1&1&1\cr 1&1&1 \end(vmatrix). $$

بیایید مثالی از فیلتر کردن تصویر نیمه‌تون نویز با استفاده از فیلتر میانگین متحرک را در نظر بگیریم. تصاویر با نویز افزودنی گاوسی نویز دارند (شکل 2 - 8).

در شکل 1 - 6 نمونه هایی از فیلتر کردن یک تصویر نیم تنه با درجات مختلف نویز را با استفاده از یک فیلتر متوسط ​​با اندازه پنجره 3 $\ برابر 3 $ نشان می دهد. همانطور که از مثال مشاهده می شود، فیلتر میانگین متحرک در مقایسه با فیلتر میانه 3 $ برابر 3 $ قبلاً در نظر گرفته شده، توانایی کمتری برای سرکوب مولفه نویز دارد.

بیایید میانگین متحرک را با یک پنجره فیلتر بزرگ در نظر بگیریم. در شکل 23 - 28 مثالی را ارائه می دهد فیلتر میانهبا اندازه های مختلفدیافراگم ها

همانطور که در شکل دیده میشود. - 12، با افزایش اندازه پنجره، توانایی فیلتر میانه برای سرکوب مولفه نویز افزایش می یابد. با این حال، در همان زمان، اثر "عدم فوکوس" ظاهری تصویر نیز افزایش می یابد (شکل 11، 12) به دلیل تار شدن لبه های اشیاء قابل مشاهده. ما همچنین این اثر تاری را که مخصوص فیلترهای خطی است، در مورد فیلتر رتبه غیرخطی مشاهده نکردیم.

فیلتر گاوسی

در بخش قبل، مورد "منحط" فیلتر خطی با یک ماسک همگن را در نظر گرفتیم. در همین حال، ایده انحراف یک تصویر با یک ماتریس وزن شبیه به ایده قبلی در مورد معرفی یک ماتریس وزن در فیلترهای صدک وزنی است. اگر نقاط نزدیکتر در همسایگی تأثیر بیشتری در نتیجه نهایی نسبت به نقاط دور داشته باشید، می توانید پایداری نتایج فیلتر را در لبه های مناطق افزایش دهید. نمونه ای از اجرای این ایده برای پنجره ای به اندازه $3\ برابر 3$ یک ماسک است

$$ \frac(1)(16)\times \begin(vmatrix) 1&2&1\cr 2&4&2\cr 1&2&1 \end(vmatrix). $$

چنین ماسکی گوسی نامیده می شود. بر این اساس، فیلتر خطی که از آن استفاده می کند $\it(Gaussian)$ نیز نامیده می شود. با استفاده از تقریب های گسسته تابع گاوسی دوبعدی، می توان سایر هسته های گاوسی را به دست آورد. اندازه بزرگتر. توجه داشته باشید که ماسک های فیلتر خطی $\it(صاف کردن)$ یا $\it(filtering)$ باید مجموع همه عناصر برابر با $1 باشد. این $\it(شرایط عادی سازی)$ پاسخ کافی فیلتر به سیگنال ثابت را تضمین می کند (تصویر ثابت Im$ = \const$).

در شکل 13 - 15 نمونه ای از فیلتر خطی گاوسی یک تصویر نویز را نشان می دهد.

فیلترهای دیجیتال به شما امکان می دهند تصاویر را روی هم قرار دهید جلوه های مختلفبه عنوان مثال: تاری، تیز کردن، تاب برداشتن، نویز و غیره.

فیلتر دیجیتالیک الگوریتم پردازش تصویر است. گروه بزرگفیلترهای دیجیتال الگوریتم یکسانی دارند، اما تاثیری که فیلتر بر روی تصویر می گذارد به ضرایب استفاده شده در الگوریتم بستگی دارد.

فیلتر کردن تصویر یکی از اساسی ترین عملیات است بینایی کامپیوتر، تشخیص الگو و پردازش تصویر. در واقع، کار اکثریت قریب به اتفاق روش ها با نوعی فیلتر کردن تصاویر منبع شروع می شود.

فیلترهای خطی

فیلترهای خطی خانواده ای از فیلترها هستند که توصیف ریاضی بسیار ساده ای دارند. در عین حال، آنها به شما اجازه می دهند تا به طیف گسترده ای از اثرات دست پیدا کنید. فرض می کنیم که تصویر نیم تن اصلی داده شده است آ، و شدت پیکسل های آن را نشان می دهد آ(ایکس, y). فیلتر خط توسط یک تابع با ارزش واقعی تعیین می شود اف، روی شطرنجی مشخص شده است. این تابعهسته فیلتر نامیده می شود و خود فیلتر با استفاده از عمل کانولوشن گسسته (جمع بندی وزنی) انجام می شود:

نتیجه یک تصویر است ب. فرمول بالا محدودیت های جمع را تعریف نمی کند. معمولا هسته فیلتر فقط در یک محله خاص غیر صفر است نامتیاز (0، 0). خارج از این مجاورت اف(من, j) یا دقیقاً برابر با صفر است یا بسیار نزدیک به آن، به طوری که می توان از آن صرف نظر کرد. بنابراین، جمع بندی بیش از ( من, j) Є نو مقدار هر پیکسل ب(ایکس, y) توسط پیکسل های تصویر تعیین می شود آکه در پنجره خوابیده اند ن، در مرکز نقطه ( ایکس, y) (این مجموعه را نشان می دهیم ن(ایکس, y)). هسته فیلتر بر روی یک محله مستطیلی تعریف شده است ن، می تواند به عنوان یک ماتریس در نظر گرفته شود متر× n، که در آن طول اضلاع اعداد فرد است. هنگام تعیین یک هسته توسط یک ماتریس M kl، باید در مرکز قرار گیرد:

هنگامی که پیکسل ( ایکس, y) در مجاورت لبه های تصویر قرار دارد. در این مورد آ(ایکس+من, y+j) می تواند با یک پیکسل مطابقت داشته باشد آ، در خارج از مرزهای تصویر قرار دارد آ. این مشکلاز چند طریق قابل حل است:



§ با برش دادن تصویر، چنین پیکسل هایی را فیلتر نکنید بدر امتداد لبه ها یا رنگ آمیزی آنها، به عنوان مثال، سیاه و سفید؛

§ پیکسل مربوطه را در جمع بندی وارد نکنید و وزن آن را توزیع کنید اف(من, j) به طور مساوی در بین سایر پیکسل های همسایه ن(ایکس, y);

§ علاوه بر این، مقادیر پیکسل های فراتر از مرزهای تصویر را با استفاده از برون یابی تعیین کنید.

§ علاوه بر این مقادیر پیکسل های خارج از مرزهای تصویر را با استفاده از بازتاب آینه تعیین کنید.

انتخاب روش خاصباید با در نظر گرفتن فیلتر و ویژگی های خاص ساخته شود کاربرد خاص. جدا کردن تعریف کلیفیلترهای خطی، بیایید به مثال ها برویم.

فیلترهای ضد آلیاسینگ

نتیجه اعمال فیلتر ضد آلیاسینگ، محو کردن تصویر و حذف تغییر رنگ واضح است. ساده ترین فیلتر صاف کننده شعاع مستطیلی rبا استفاده از ماتریس اندازه (2 r+ 1) × (2 r+ 1)، که همه مقادیر آن برابر است:

,

بنابراین مجموع تمام عناصر ماتریس برابر با یک است. هنگام فیلتر کردن با این هسته، مقدار پیکسل با مقدار میانگین پیکسل ها در یک مربع با ضلع 2 جایگزین می شود. r+1 اطرافش. نمونه ای از فیلتراسیون با استفاده از فیلتر مستطیلی در شکل 1 نشان داده شده است. 4.19.

آ)
ب)

برنج. 4.19. نمونه ای از استفاده از فیلتر ضد آلیاسینگ

در این حالت، یک فیلتر مستطیلی به ابعاد 3 در 3 پیکسل بر روی تصویر اصلی اعمال می شود (شکل 4.19، a). هسته فیلتر در این مورد به شکل زیر است:


.

نتیجه فیلتر در تصویر سمت راست نشان داده شده است (شکل 4.19، ب). توجه داشته باشید که مجموع تمام عناصر هسته فیلتر به یک می رسد. بنابراین، می توان گفت که هنگام استفاده از چنین فیلتری، روشنایی کلی کل تصویر تغییر نمی کند. با این حال، همانطور که در شکل مشاهده می شود، در نتیجه متوسط ​​کردن مقادیر رنگ پیکسل، کنتراست تصویر کاهش می یابد. 4.19.

همانطور که از مثال بالا می بینیم، فیلترهای ضد آلیاسینگ می توانند برای از بین بردن اثر راه پله و همچنین کاهش نویز استفاده شوند.

سر و صدا- نقص در تصویر که توسط حسگرهای نوری و الکترونیکی دستگاه ها ایجاد شده یا در هنگام استفاده ایجاد شده است دستگاه های آنالوگ. نویز در تصویر به صورت ظاهر می شود به صورت تصادفیعناصر شطرنجی واقع شده (نقاط) با ابعاد نزدیک به اندازه پیکسل. نویز با تصویر سبکتر یا متفاوت است سایه تیرهخاکستری و رنگی و/یا رنگی. دلیل ظاهر شدن نویز در تصویر عبارت است از: دانه بندی فیلم، کثیفی، گرد و غبار، خراشیدگی، لایه برداری امولسیون عکاسی. اگر در نظر بگیریم دستگاه های دیجیتالسپس علت نویز دیجیتال عبارتند از: نویز حرارتی ماتریس، نویز انتقال شارژ، نویز کوانتیزاسیون ADC، تقویت سیگنال در دوربین دیجیتال، خاک، گرد و غبار روی سنسور.

کاربرد فیلتر خطی با هسته مستطیلی دارد اشکال قابل توجه: پیکسل در فاصله rاز فرآوری شده همان اثر را بر روی نتیجه دارند که همسایه ها. کاهش نویز موثرتر می تواند حاصل شود اگر تاثیر پیکسل ها بر روی یکدیگر با فاصله کاهش یابد. این ملک دارای گاوسی فیلتر با هسته:


یک فیلتر گاوسی دارای هسته غیر صفر با اندازه بی نهایت است. با این حال، هسته فیلتر با دور شدن از نقطه (0، 0) خیلی سریع به صفر می رسد و بنابراین در عمل می توانیم خود را به پیچیدگی با یک پنجره محدود کنیم. اندازه کوچکدر اطراف (0، 0) (به عنوان مثال، شعاع پنجره را 3 در نظر بگیرید σ ).

فیلتر گاوسی نیز صاف می شود. با این حال، بر خلاف فیلتر مستطیلی، تصویر یک نقطه با فیلتر گاوسی یک نقطه تار متقارن خواهد بود، با کاهش روشنایی از وسط به لبه‌ها، که بسیار نزدیک‌تر به تاری واقعی لنزهای بدون فوکوس است.

همانطور که می دانید راه های زیادی برای تغییر و ویرایش تصاویر با استفاده از آن وجود دارد روش های دیجیتال. نتیجه پردازش تصویر بستگی به این دارد که چه عملیاتی را می توانید با تصویر پس از رسیدن به رایانه خود انجام دهید: می توانید ویرایش کنید RGBاجزای رنگ به منظور به دست آوردن بهترین تعادل رنگ. می توانید روشنایی تصویر را کم یا زیاد کنید، وضوح آن را ویرایش کنید یا آن را تار کنید عناصر منفردبا استفاده از فیلترهای گرافیکی مختلف ما به جلوه های بسیار محبوبی که به طور گسترده در گرافیک کامپیوتری استفاده می شود نگاه خواهیم کرد:

  • وارونگی رنگ ها.
  • محو کردن
  • وضوح را افزایش دهید.
  • نقش برجسته.
  • جلوه آبرنگ.

ماتریس - هسته کانولوشن

اگر از منظر الگوریتمی به این افکت ها نگاه کنیم، چیز پیچیده ای نخواهیم دید: این افکت ها با استفاده از ماتریس اعداد ایجاد می شوند. این ماتریس را هسته کانولوشن می نامند.

این ماتریس ( 3x3) شامل سه خط سه عددی است. برای تبدیل یک پیکسل تصویر، آن را در مقدار مرکز هسته ضرب می‌کنیم و مقادیر پیکسل‌های اطراف آن را در ضرایب هسته متناظر آن‌ها ضرب می‌کنیم و پس از آن همه مقادیر خلاصه می‌شوند و ما یک مقدار جدید برای پیکسل در حال تغییر دریافت کنید. این فرآیندباید به صورت متوالی با هر پیکسل از تصویر ویرایش شده انجام شود.

ضرایب هسته تعیین می کند که چگونه تصویر ویرایش شده تغییر خواهد کرد. برای دستیابی به برخی از جلوه ها، لازم است که به طور متوالی نه یک، بلکه چندین ماتریس روی تصویر اعمال شود.

رنگ های معکوس

این ساده ترین راه برای ویرایش یک تصویر است: ما حتی به ماتریس هم نیاز نداریم. ما فقط باید مولفه های رنگ را به مولفه های مخالف تغییر دهیم (جزئیات بیشتر هنگام اجرای فیلتر در قسمت بعدی فصل).

الگوریتم تاری

برای محو کردن تصویر، باید مقادیر را در حافظه بخوانیم RGB- اجزای رنگ هر پیکسل پس از آن، هسته blur به تمام اجزای رنگی همه پیکسل های تصویر ویرایش شده اعمال می شود:
شکل 1. ماتریس برای فیلتر "Blur".

برای تعیین رنگ پیکسلی که در زیر مرکز هسته قرار دارد، لازم است وزن هسته را با مقادیر رنگ مربوط به تصویر ویرایش شده ضرب کنید. پس از این، نتایج خلاصه می شود.

تصویر به دست آمده در مقایسه با تصویر اصلی "تار" است زیرا رنگ هر پیکسل پردازش شده بین پیکسل های همسایه "گسترش" یافته است.

برای افزایش کرنل blur می توانید:

  • از یک هسته بزرگتر استفاده کنید (تا رنگ بین آنها توزیع شود بیشترپیکسل های همسایه)؛
  • ضرایب را به گونه ای تغییر دهید که تأثیر ضریب مرکزی را کاهش دهد.
  • فیلتر کردن تصویر را بیش از یک بار انجام دهید.

الگوریتم تیز کردن

هنگام ایجاد افکت شارپنینگ، الگوریتم مشابهی را انجام می دهیم، اما از هسته متفاوتی استفاده می کنیم، زیرا اکنون هدف ما افزایش وضوح تصویر است. هسته جیبرای افزایش وضوح:
شکل 2. ماتریس برای فیلتر "شارپنینگ".
مانند مورد قبلی، ما به طور جداگانه پردازش می کنیم RGB-کامپوننت ها، پس از آن مقادیر رنگ پیکسل پردازش شده را تشکیل می دهیم. ضرایب وزن منفی برای افزایش کنتراست بین پیکسل مرکزی و همسایگان آن استفاده می شود.

بنابراین، تصویر به دست آمده واضح تر از تصویر اصلی است. در حقیقت توضیحات بیشتراز جایی بیرون آمد - فقط کنتراست بین رنگ پیکسل ها افزایش یافته است.

الگوریتم برجسته سازی

نقش برجسته به روشی مشابه انجام می شود، اما در در این موردما نه از یک ماتریس، بلکه از چندین ماتریس استفاده می کنیم.
شکل 3.1 ماتریس برای فیلتر "Embossing": مرحله اول.
در حالی که هسته های تاری و واضح دارای مجموع ضرایب بودند برابر با یک، در این حالت مجموع اوزان در هسته برجسته برابر است با 0 . اگر مجموع ضرایب برابر نباشد 0 ، به سمت یک رنگ خاص انحراف خواهیم داشت.

مقدار رنگ حاصل بیشتر پردازش می شود (متوسط) و به محدوده آورده می شود 0-255 (جزئیات بیشتر را می توانید در حین اجرا مشاهده کنید از این فیلتر). تغییر مقادیر موقعیت 1 و -1 ، می توانیم جهت نور پس زمینه را تغییر دهیم.
شکل 3.2. ماتریس برای فیلتر "Embossing": مرحله دوم.

الگوریتم آبرنگ

نام فیلتر آبرنگ گویای همه چیز است: تصویر به دست آمده طوری به نظر می رسد که گویی با آبرنگ نقاشی شده است. در مرحله اول اعمال این فیلتر، رنگ های تصویر ویرایش شده را صاف می کنیم.
شکل 4.1. ماتریس فیلتر "اثر آبرنگ": مرحله اول.
در مرحله بعد، انتقال ها را برای تکمیل افکت آبرنگ تیز می کنیم.
شکل 4.2. ماتریس برای فیلتر "اثر آبرنگ": مرحله دوم.
همین. با کمی تنظیم پارامترهای ماتریس، می‌توانیم جلوه آبرنگ واضح‌تر و روان‌تری دریافت کنیم. br />

بهترین مقالات در این زمینه