post

فیلتر کردن رنگ در متلب

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

فیلتر کردن رنگ در متلب

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

سپس با دستور زیر تصویر را خوانده و آن را در متغیر pic ذخیره میکنیم :

این کد در واقع تصویر را خوانده و آن را به یک ماتریس سه بعدی تبدیل میکند، بعد اول ماتریس ؛ تعداد پیکسل های ارتفاع تصویر است، بعد دوم تعداد پیکسل های طول تصویر است و بعد سوم ماتریس مشخصه RGB هر پیکسل از تصویر است . در واقع بعد سوم ماتریس خود متشکل از سه عدد است که می توانند بین ۰ تا ۲۵۵ باشند.

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

حلقه اول تمام عناصر در جهت y (بعد اول ماتریس) و for دوم تمام عناصر در جهت x را پیمایش میکند .

در گام بعدی از یک دستور if برای فیلتر کردن رنگ پیمایش شده استفاده میکنیم :

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

در کد زیر هر سه پارامتر R و G و B برابر خاکستری یا gsc قرار می گیرد :

در نهایت با دستور imshow می توانیم تصویر جدید را نمایش دهیم.

در نهایت تمام کدها به صورت زیر است :

در نهایت شکل خروجی به صورت زیر است :

فیلتر کردن رنگ در متلب
 
برای اعمال این کد بر روی تصویر دیگر فقط کافیست متغیر pic را با تصویر دیگری مقدار دهی کنید .

در اینجا میتوانید فیلم کامل آموزش این کد را مشاهده نمایید :