مقدمه:
مجموعه عملیات و روش هایی که برای کاهش عیوب و افزایش کیفیت ظاهری تصویر مورد استفاده قرار می گیرد، پردازش تصویر نامیده می شود.حوزه های مختلف پردازش تصویر را می توان شامل بهبود تصاویر مختلف پزشکی مانند آشکار سازی تومور های مغز یا پهنای رگ های خونی و ... ، افزایش کیفیت تصاویر حاصل از ادوات نمایشی مانند تصاویر تلویزیونی و ویدیویی، ارتقا متون و شکل های مخابره شده در رسانه های مختلف مانند شبکه و فاکس و همچنین بهبود کیفیت روش های کنترل توسط بینایی ماشین و درک واقعی تر مناظر توسط ربات ها دانست.
اگرچه حوزه ی کار با تصاویر بسیار گسترده است ولی عموما محدوده ی مورد توجه در چهار زمینه ی بهبود کیفیت ، بازسازی تصاویر مختل شده، فشرده سازی تصویر و درک تصویر توسط ماشین متمرکز می گردد. در اینجا سه تکنیک اول بررسی خواهد شد.
از آنجایی که برای کار روی تصاویر با پیکسل ها سروکار داریم و هر پیکسل نشان دهنده ی یک عنصر از یک آرایه ی دوبعدی است، کار روی تصاویر همواره با کار روی ماتریس ها عجین شده است. ماتریس اسپارس یا ماتریس خلوت ، ماتریسی است که درایه های صفر آن زیاد باشد و در نتیجه ذخیره ی عناصر صفر مقرون به صرفه نیست و همواره سعی در کاهش ذخیره ی این عناصر است تا بتوان عملیات ماتریسی را سریع تر انجام داد. در کار با تصویر با اینگونه ماتریس ها زیاد برخورد می کنیم . در این پروژه ابتدا تکنیک ها و روش های مختلف پردازش تصویر را معرفی می کنیم. در بخش بعد الگوریتم های موازی را شرح می دهیم که در GPU کاربرد دارند و با معماری موازی آشنا می گردیم. در بخش سوم برخی از الگوریتم های مربوط به ماتریس خلوت را مورد بررسی قرار می دهیم و در نهایت در بخش چهارم کاربرد این ماتریس ها را در پردازش تصویر معرفی خواهیم نمود.
و در آخر، پیاده سازی یکی از ا لگوریتم های مبحث فشرده سازی را روی تصاویر باینری، انجام خواهیم داد و با یکی از الگوریتم های فشرده سازی مربوط به تصاویر باینری به نام Run length coding مقایسه خواهیم نمود.
بخش اول
روش های پردازش تصویر
توجه و روی آوردن به روش های پردازش تصاویر به اوایل سال 1920 باز می گردد، زمانی که عکس های دیجیتال برای اولین بار توسط کابل های زیردریایی از نیویورک به لندن فرستاده شد.با این حال، کاربرد مفهوم پردازش تصویر تا اواسط 1960 گسترش وپیشرفت چندانی نیافت. در 1960 بود که کامپیوتر های نسل سوم دیجیتال به بازار آمد که می توانست سرعت و حافظه بالای مورد نیاز برای پیاده سازی الگوریتم های پردازش تصویر رافراهم کند.
از آن پس، تجربه در این زمینه گسترش یافت. مطالعات و تحقیقات زیادی در این موضوع در علوم مختلف از جمله : مهندسی، علوم کامپیوتر، علوم اطلاعات، فیزیک، شیمی، بیولوژی و داروسازی انجام شد.
نتیجه ی این تلاش ها در تکنیک های پردازش تصویر در مسائل مختلف - از بهبود کیفیت و بازیابی تصاویر گرفته تا پردازش اثر انگشت در مسائل تجاری – خود رانشان داد.
در این فصل بر آنیم که تکنیک ها و روش های مختلف پردازش تصویر را معرفی و بررسی کنیم. اما پیش از پرداختن به روش ها ، برخی تعاریف پایه را ذکر خواهیم کرد.
1-1 تصویر دیجیتالی:
تصویر به عنوان ترجمه image نشانگر یک شکل دو بعدی می باشد که توسط یک وسیله ی حساس به نور مانند دوربین به وجود آمده باشد. اما picture (عکس) نشانگر هر گونه شکل دو بعدی مانند یک تابلوی نقاشی و یا یک دست نوشته است. مقصود از تصویر دیجیتال ، digital image می باشد.
یک تصویر را می توان توسط تابع دوبعدی f(x,y) نشان داد که در آن x و y را مختصات مکانی و مقدار f در هر نقطه را شدت روشنایی تصویر درآن نقطه می نامند. اصطلاح سطح خاکستری نیز به شدت روشنایی تصاویر مونوکروم (monochrome) اطلاق میشود . تصاویر رنگی نیز از تعدادی تصویر دوبعدی تشکیل می شود.
زمانی که مقادیر x و y و مقدار f(x,y) با مقادیر گسسته و محدود بیان شوند ، تصویر را یک تصویر دیجیتالی می نامند. دیجیتال کردن مقادیر x و y را Sampling و دیجیتال کردن مقدار f(x,y) را quantization گویند.
برای نمایش یک تصویر M * N از یک آرایه دو بعدی ( ماتریس) که M سطر و N ستون دارد استفاده می کنیم . مقدار هر عنصر از آرایه نشان دهنده ی شدت روشنایی تصویر در آن نقطه است. در تمام توابعی که پیاده سازی می شود ، هر عنصر آرایه یک مقدار 8 بیتی است که می تواند مقداری بین 0 و 255 داشته باشد. مقدار صفر نشان دهنده ی رنگ تیره ( سیاه ) و مقدار 255 نشان دهنده رنگ روشن ( سفید ) است.
به عنوان مثال تصویر زیر که سایز آن 265×288 است از یک ماتریس که دارای 288 سطر و 265 ستون است برای نمایش تصویر استفاده می کند
شکل 1-1
هر پیکسل از این تصویر نیز مقداری بین 0 و 255 دارد . نقاط روشن مقادیری نزدیک به 255 و نقاط تیره مقادیر نزدیک به 0 دارد. همه ی توابع پردازش تصویر از این مقادیر استفاده کرده و اعمال لازم را بر روی تصویر انجام می دهند.
2-1 تعریف رنگ و ویژگی های آن:
برای ارایه ی یک تعریف صحیح از رنگ باید علاوه بر پدیده های فیزیکی و قوانین حاکم بر آن، نتیجه ی حاصل از این پدیده های فیزیکی که ذهنی می باشد را نیز در نظر گرفت.
از دیدگاه فیزیکی ایجاد رنگ به 3 عامل بستگی دارد که عبارتند از :
1)منبع نوری که جسم را روشن می کند.
2)جسم که به وسیله منع نوری روشن می شود.
3)چشم و مغز که رنگ را دریافت می کند.
اگرچه بهترین دریافت کننده ای که می تواند رنگ را بسنجد و در مورد آن دریک لحظه قضاوت نماید چشم و مغز انسان می باشد، اما به جز چشم نور یاب های دیگری مانند فتو تیوپها و فتوسلها نیز در سنجش رنگ توسط دستگاه ها به کار می روند. جهت ایجاد رنگ های متفاوت، منبع نوری باید علاوه بر انرژی مناسب، توزیع کافی در طیف مریی بین 380 تا 760 نانومتر را داشته باشد و مشاهده کننده نیز از بینایی رنگی معمول و نرمالی برخوردار باشد. به علاوه محیط مشاهده نیز از فضای مناسبی برای تشخیص جسم برخوردار باشد.
بدیهی است که با تغییر هر یک از سه عامل اصلی ایجاد کننده ی رنگ یعنی منبع نوری، جسم و مشاهده کننده تغییراتی دررنگ ظاهر شده ایجاد خواهد شد.
به سیستم هایی که بیان و تنظیم رنگ را ارایه می دهند " فضای رنگ " گویند. در ادامه به تعریف چند سیستم فضای رنگ رایج می پردازیم.
1-2-1 فضای رنگ HSV :
به منظور بررسی رفتار یک انسان در موردرنگ و تقسیم بندی آنان فرض می گردد که شخصی که هیچ تجربه قبلی راجع به رنگ ندارد قصد دارد سنگ هایی با رنگ های مختلف را طبقه بندی نموده و از لحاظ رنگ آن ها را منظم و نامگذاری نماید. فرض می شود اولین کار شخص جدا کردن سنگ های رنگی از سنگ های غیر رنگی مانند سیاه و سفید و خاکستری باشد.
در میان سنگ های غیر رنگی می توان ردیف منطقی از رنگ های سفید و خاکستری روشن و خاکستری تیره و سیاه ایجاد نمود و یا به عبارت دیگر در میزان روشنایی آن ها تفکیک قایل شد. نام دیگر آن کیفیت ارزش* می باشد.
در مورد سنگ های رنگی می توان آن ها را ابتدا از نظر ته رنگ یا فام** از یکدیگر جدا ساخت. یعنی آنها را به رنگ های قرمز و آبی و زرد و نارنجی و غیره تقسیم بندی نمود و در هر طبقه ی رنگی نیز مجددا آنها را در دسته های کوچکتری مانند قرمز ته آبی و یا ته زرد و... قرار داد. علاوه بر آن هر سری از رنگ ها با فام مشخص را می توان دوباره بنا به کم رنگی مانند سنگ های آکروماتیک مجددا تقسیم بندی کرد. مثلا یک سری سنگ های با فام قرمز می تواند از صورتی کمرنگ تا قرمز گیلاسی تقسیم بندی شود. دراین صورت هر سنگ قرمز دراین سری از لحاظ کمرنگی می تواند یک مشابه در سری سنگ های خاکستری آکروماتیک داشته باشد. علاوه بر دو مولفه ی ( ارزش و فام) که شخص در تفکیک رنگ ها انتخاب نموده، مولفه دیگری نیز برای تشخیص موجود است.
* value
** Hue
مثلا اگر یک سنگ قرمز آجری با یک سنگ درخشان قرمز گوجه فرنگی مقایسه شود اختلافی در فام و ارزش( روشنایی) مشاهده نمی شود در واقع هیچکدام زردتر یا آبی تر از دیگری نیست و به علاوه از لحاظ روشنایی نیز تفاوتی وجود ندارد و
با یک خاکستری در سری آکروماتیک معادلند. ولی هرکسی تفاوت آن ها را تشخیص می دهد.
مولفه سوم در اینجا مشخص می شود و آن خلوص رنگیا اشباع رنگ* نام دارد.