انواع تصاویر در جعبه ابزارmatlab
جعبه ابزار پردازش تصویر نرم افزار matlab چهار نوع تصویر را تعریف می کند.این انواع ، نحوه تفسیر عناصر ماتریس داده تصاویر به وسیله matlab را مشخص می کنند. بر این اساس تصاویر به چهار نوع Binary(bilevel) ،Indexed(pseudocolor) ، Grayscale(intensity) ، Truecolor(RGB) تقسیم می شوند.
Binary images
در یک تصویر باینری، هر پیکسل تنها یکی از دو مقدار گسسته صفر و یک را اختیار می کند. ماتریس داده هر تصویر باینری از نوع logical است. طبق قرارداد برای اشاره به نوع باینری از نام BW استفاده می شود. شکل زیر نمونه ای از یک تصویر باینری همراه با مقادیر تعدادی از پیکسل ها را نشان می دهد.
Indexed images
Indexed image یا یک تصویر اندیس گذاری شده از یک ماتریس داده و یک ماتریس جعبه رنگ تشکیل می شود. ماتریس جعبه رنگ یک ماتریسm-by-3 از نوع double است که مقادیر بین [0,1] را اختیار می کند. هر ردیف این ماتریس ارزش رنگ قرمز و سبز و آبی برای هر رنگ خاص را مشخص می کند. در یک تصویر اندیس گذاری شده مقدار هر پیکسل نمایشگر رنگ خاصی می باشد که با نگاشت مقدار آن پیکسل در ماتریس جعبه رنگ به دست می آید. بنابراین مقادیر ماتریس داده باید مقادیر صحیح باشند. مقدار 1 به اولین ردیف ماتریس و مقدار 2 به دومین ردیف ماتریس جعبه رنگ اختصاص دارد. شکل زیر ساختار یک تصویر اندیس گذاری شده را شرح می دهد. مقادیر پیکسل ها در تصویر بوسیله اعداد صحیح مقدار دهی شده اند که هر کدام نشانگر رنگ خاصی در جعبه رنگ هستند.
ماتریس جعبه رنگ معمولاً همراه تصویر ذخیره می شود و با فراخوانی تصویر در matlab همراه تصویر load می شود. لازم به ذکر است که لزوماً محدود به استفاده از جعبه رنگ یا colormap پیش فرض نیستید و می توانیدcolormap دلخواه خود را انتخاب کنید.
نوع ارتباط بین ماتریس تصویر و colormap به نوع قالب ماتریس تصویر بستگی دارد. اگر قالب تصویر از نوع double باشد مقدار 1 به ردیف اول ماتریسcolormap اشاره میکند و به همین ترتیب… . اگر قالب تصویر از نوع uint8 or uint16 باشد، مقدار 0 به اولین ردیف و مقدار 1 به دومین ردیف colormapاشاره می کند و به همین ترتیب… .
Grayscale Images
یک تصویر grayscale از یک ماتریس داده تشکیل می شود که نمایش دهنده شدت نور در یک گستره خاص است. این ماتریس می تواند از نوع uint8،uint16 ،int16 ،single ،double باشد. در حالیکه این نوع تصویر به ندرت همراه یک colormap ذخیره می شود، matlab برای نمایش آن ها از colormapاستفاده می کند. برای یک ماتریس از قالب single یا double با استفاده ازcolormap پیش فرض، شدت نور 0، نمایشگر رنگ سیاه و شدت نور 1، نمایشگر رنگ سفید است. برای ماتریس از نوع uint8 ،uint16 ،int16 شدت نور intmin(class(i)) نمایشگر رنگ سیاه و شدت نور intmax(class(i))نمایشگر رنگ سفید است.
شکل زیر یک تصویر grayscale از قالب double را نشان می دهد.
True color (RGB)images
یک تصویر truecolor تصویری است که مقدار هر پیکسل آن به وسیله سه مقدار مشخص می شود که هر کدام آن ها برای ارزش رنگ قرمز و آبی و سبز برای هر پیکسل هستند. Matlab یک تصویر truecolor را بعنوان یک ماتریسm-by-n-by-3 ذخیره می کند(یعنی سه ماتریس دو بعدی) که ارزش رنگ های قرمز و آبی و سبز را برای هر پیکسل خاص معرفی می کند. این نوع تصویر ازcolormap استفاده نمی کند. رنگ هر پیکسل از تصویر از ترکیب شدت رنگ های قرمز و سبز و آبی آن پیکسل تشخیص داده می شود.
فرمت فایل های گرافیکی، تصویر RGB را بعنوان تصویر 24 بیتی ذخیره می کند، چراکه مقادیر قرمز و آبی و سبز هرکدام 8 بیتی هستند. حاصل آن داشتن گستره ای متشکل از شانزده میلیون رنگ مختلف است. یک تصویرRGB می تواند از قالب های uint8، uint16 ، single ، double باشد.
در ماتریس یک تصویر RGB از نوع double یا single عناصر هر رنگ مقادیری بین [0,1] به خود می گیرند. یک پیکسل که مقادیر رنگ آن(0,0,0)است، سیاه نمایش داده می شود و پیکسلی که مقادیر رنگ آن(1,1,1)است، سفید نمایش داده می شود.
برای مثال مقدار رنگهای قرمز و سبز و آبی برای پیکسل(10,5) به ترتیب درRGB(10,5,3),RGB(10,5,2),RGB(10,5,1) ذخیره می شود. شکل زیر یک تصویر RGB از قالب double را نمایش می دهد.
برای اینکه عمیق تر مفهوم سه رنگ متفاوت و ترکیب آن ها، که در این نوع تصاویر استفاده می شود را نشان دهیم؛ مثال زیر می تواند مفید باشد. تصویری به نام spectrum خوانده می شود و سپس با دستوراتی که در خطوط بعدی مشاهده می کنید، ماتریس های رنگ قرمز و سبز و آبی آن را جدا کرده و هرکدام را جداگانه مشاهده می کنید. figure1 ، figure2 ، figure3 به ترتیب هرکدام شدت رنگهای قرمز و سبز و آبی تشکیل دهنده تصویر اصلی را نشان می دهند و در نهایت figure4 ترکیب این سه ماتریس را نشان می دهد.
خواندن تصویر | Spectrum=imread(‘spectrum.jpg’); | ||
جدا کردن ماتریس اول(ذخیره کننده شدت رنگ قرمز)
| R=spectrum(: , : , 1); | ||
جدا کردن ماتریس دوم (ذخیره کننده شدت رنگ سبز)
| G=spectrum(: , : , 2); | ||
جدا کردن ماتریس سوم (ذخیره کننده شدت رنگ آبی)
نمایش ماتریس های R و Gو B وspectrum به صورت همزمان: | B=spectrum(: , : , 3);
|
جهت دانلود آموزش جامع پردازش تصویر در متلب بر روی تصویر بالا کلیک فرمایید