پایان نامه جهت اخذ درجه کارشناسی
مقدمه:
مجموعه عملیات و روش هایی که برای کاهش عیوب و افزایش کیفیت ظاهری تصویر مورد استفاده قرار می گیرد، پردازش تصویر نامیده می شود.حوزه های مختلف پردازش تصویر را می توان شامل بهبود تصاویر مختلف پزشکی مانند آشکار سازی تومور های مغز یا پهنای رگ های خونی و ... ، افزایش کیفیت تصاویر حاصل از ادوات نمایشی مانند تصاویر تلویزیونی و ویدیویی، ارتقا متون و شکل های مخابره شده در رسانه های مختلف مانند شبکه و فاکس و همچنین بهبود کیفیت روش های کنترل توسط بینایی ماشین و درک واقعی تر مناظر توسط ربات ها دانست.
اگرچه حوزه ی کار با تصاویر بسیار گسترده است ولی عموما محدوده ی مورد توجه در چهار زمینه ی بهبود کیفیت ، بازسازی تصاویر مختل شده، فشرده سازی تصویر و درک تصویر توسط ماشین متمرکز می گردد. در اینجا سه تکنیک اول بررسی خواهد شد.
از آنجایی که برای کار روی تصاویر با پیکسل ها سروکار داریم و هر پیکسل نشان دهنده ی یک عنصر از یک آرایه ی دوبعدی است، کار روی تصاویر همواره با کار روی ماتریس ها عجین شده است. ماتریس اسپارس یا ماتریس خلوت ، ماتریسی است که درایه های صفر آن زیاد باشد و در نتیجه ذخیره ی عناصر صفر مقرون به صرفه نیست و همواره سعی در کاهش ذخیره ی این عناصر است تا بتوان عملیات ماتریسی را سریع تر انجام داد. در کار با تصویر با اینگونه ماتریس ها زیاد برخورد می کنیم . در این پروژه ابتدا تکنیک ها و روش های مختلف پردازش تصویر را معرفی می کنیم. در بخش بعد الگوریتم های موازی را شرح می دهیم که در 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
مثلا اگر یک سنگ قرمز آجری با یک سنگ درخشان قرمز گوجه فرنگی مقایسه شود اختلافی در فام و ارزش( روشنایی) مشاهده نمی شود در واقع هیچکدام زردتر یا آبی تر از دیگری نیست و به علاوه از لحاظ روشنایی نیز تفاوتی وجود ندارد و
با یک خاکستری در سری آکروماتیک معادلند. ولی هرکسی تفاوت آن ها را تشخیص می دهد.
مولفه سوم در اینجا مشخص می شود و آن خلوص رنگیا اشباع رنگ* نام دارد.
در شکل 2-1 سیستم رنگ یا فضای رنگ HSV نمایش داده شده که بر اساس همین سه مولفه تعریف می شود.
2-2-1 فضای رنگ RGB:
در این سیستم فرض می شود که هررنگ در یک فضای سه بعدی از سه مولفه رنگی مستقل قرمز ، سبز و آبی تشکیل شده است.
فضای رنگ RGB متداول ترین فضای رنگ به کار گرفته شده در پردازش تصویر می باشد. دوربین های رنگی ، پویشگرها و صفحه های نمایشی در اغلب موارد دارای سیگنال های ورودی و خروجی تعریف شده در این فضای رنگ می باشند. مقادیر خاکستری در روی قطر اصلی تعریف می شود که سیاه در مختصات R=0,G=0,B=0 و سفید در نقطه ای با مختصات R=G=B=max تعریف می شود که max=255 و دلیل آن استفاده از 1 بایت برای هر رنگ است.
اشکال عمده ی این فضا، همبستگی زیاد بین مولفه های رنگی است. به نحوی که همبستگی R-B حدود 78/0 و برای
R-G حدود 94/0 می باشد.
3-1پردازش تصویر (Image Processing )
پردازش تصاویر امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته میشود که شاخهای از دانش رایانه است که با پردازش سیگنال دیجیتال که نماینده تصاویر برداشته شده با دوربین دیجیتال یا پویش شده توسط پویشگر هستند سر و کار دارد. پردازش تصاویر دارای دو شاخه عمدهٔ بهبود تصاویر و بینایی ماشین است. بهبود تصاویر دربرگیرندهٔ روش هایی چون استفاده از فیلتر محوکننده و افزایش تضاد برای بهتر کردن کیفیت دیداری تصاویر و اطمینان از نمایش درست آنها در محیط مقصد (مانند چاپگر یا نمایشگر رایانه) است، در حالی که بینایی ماشین به روش هایی میپردازد که به کمک آنها میتوان معنی و محتوای تصاویر را درک کرد تا از آنها در کارهایی چون رباتیک استفاده شود.
در واقع اگر a(m,n) یک پیکسل در تصویر باشد ، این پیکسل بعد از عملیات پردازش به b(m,n) تبدیل خواهد شد. گذشته از روش های ارتباط دو تصویر قبل و بعد از پردازش، فرآیند پردازش در دو سطح کلی مقدماتی و پیشرفته صورت می پذیرد. در سطح مقدماتی ، هدف به دست آوردن اطلاعات تصویر و بهبود ظاهر آن توسط انسان می باشد. و شامل حذف نویز، جداسازی اجسام از زمینه ی تصویر، رمزگذاری و فشرده سازی می باشد. سطح پیشرفته استفاده از ا طلاعات تصویرجهت استفاده در کامپیوتر می باشد که به بینایی ماشین تعبیر می شود.
دراینجا به تکنیک های مختلف پردازش تصاویر در سطح مقدماتی خواهیم پرداخت .
1-3-1 بهبود کیفیت تصویر( image enhancement ) :
بهبود کیفیت ظاهری تصویر از مباحث مهم در پردازش تصویر می باشد که به منظور کار در هر گیرنده ای می تواند مورد استفاده قرار گیرد. مواقعی پیش می آید که جزییات تصویر به دلیل نورپردازی نا مناسب یا اشکالات مختلف نا شی از تصویر برداری نامناسب کیفیت ظاهری مطلوبی ندارد که در این صورت می توان با استفاده از روش های مختلف پردازش، آن ها را بهبود بخشید. به علاوه ممکن است که در اثر مخابره ی تصویر، نویز مختصری بر روی آن تاثیر گذاشته باشد که در این صورت باید توان نویز را کاهش داد.
به طور کلی می توان روش های بهبود ظاهر تصویر را به دو گروه تقسیم کرد :
الف: روشهایی که مبتنی بر مقادیر روشنایی اصلی تصویر بوده و پردازش درحوزه مکان* صورت می گیرد.
ب:روش هایی که مبتنی بر تبدیلات تصویر می باشد و پردازش در حوزه تبدیل** (مانند فرکانس) صورت پذیرفته و سپس با تبدیل معکوس تصویر قابل رؤیت و دریافت است.