مکمل کردن تصویر

در یک تصویر سیاه و سفید که فقط دو سطح شدت روشنایی 0 و 1 دارد ، منظور از مکمل کردن تصویر ، 1 کردن پیکسلهای با مقدار 0 و 0 کردن پیکسل های با مقدار 1 است. در تصویری که از L سطح روشنایی ( [0 .. L -1] ) برای نمایش شدت روشنایی پیکسل ها استفاده می کند ، مکمل یک پیکسل از فرمول زیر به دست می آید :

Pixel[ i , j ] = L -1 – Pixel[ i , j ]

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

تصویر ماموگرام

تصویر مکمل

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

شبه کد زیر نحوه مکمل کردن تصویر را نشان می دهد : ‍‍‍‍‍

Procedure Complelemt ( input : Image )
Begin
  For 1 To Height of image Do
    For 1 To Width of image Do
      Inout.pixels[ i , j ] = 255 - Inout.pixels[ i , j ]
    End For
  End For
End

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

پردازش تصویر در MATLAB

ممکمل کردن تصویر در محیط MATLAB با استفاده از تابع imcomplement انجام می پذیرد:

>> im = imread('rice.png'); br />>> imshow(im);
>> imComp = imComplement(im);
>> imshow(imComp);