PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پردازش تصاویر در رباتیک



M.A.H.S.A
09-08-2011, 11:03 AM
صویر دیجیتالی چیست ؟

یک تصویر را می توان توسط تابع دوبعدی (f(x,y تعریف کرد که در آن X و Y را مختصات مکانی و مقدار f در هر نقطه را شدت روشنایی تصویر درآن نقطه می نامند. اصطلاح سطح خاکستری نیز به شدت روشنایی تصاویر مونوکروم اطلاق میشود . تصاویر رنگی نیز از تعدادی تصویر دوبعدی تشکیل می شود.

زمانی که مقادیر X و Y و مقدار (f(x,y با مقادیر گسسته و محدود بیان شوند ، تصویر را یک تصویر دیجیتالی می نامند. دیجیتال کردن مقادیر X و Y را Sampling و دیجیتال کردن مقدار f(x,y) را quantization گویند.

برای نمایش یک تصویر M * N از یک آرایه دو بعدی ( ماتریس ) که M سطر و N ستون دارد استفاده می کنیم . مقدار هر عنصر از آرایه نشان دهنده شدت روشنایی تصویر در آن نقطه است. در تمام توابع مورد بحث ما هر عنصر آرایه یک مقدار 8 بیتی است که می تواند مقداری بین 0 و 255 داشته باشد. مقدار صفر نشان دهنده رنگ تیره ( سیاه ) و مقدار 255 نشان دهنده رنگ روشن ( سفید ) است.

به عنوان مثال تصویر زیر که سایز آن 100* 144 است از یک ماتریس که دارای 100 سطر و 144 ستون است برای نمایش تصویر استفاده می کند .



http://www.forum.microrayaneh.com/download/file.php?id=886





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

M.A.H.S.A
09-08-2011, 11:04 AM
خاکستری کردن یا Grayscale کردن تصویر

تصویر RGB و Grayscale :

یک تصویر RGB متشکل از سه تصویر است که هریک از آنها مقادیر Red ( قرمز ) ، Green ( سبز ) ، Blue ( آبی ) تصویر رنگی را نگه می دارند. تصویر حاصل نیز از ترکیب مقادیر در آرایه های متناظر در سه ماتریس بوجود می آید.

(F( x1,y1 ) = R( x1,y1 ) + G( x1,y1 ) + B( x1,y1

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

S( x1,y1 ) = (R( x1,y1 ) + G( x1,y1 ) + B( x1,y1 ) ) / 3

شبه کد پروسیجر زیر نحوه الگوریتم Grayscale کردن تصویر RGB با سایز M * N را نشان می دهد :


کد:
Procedure Grayscale( output , input As Bitmap )

Begin

For I = 1 to M Do

For J = 1 To N Do
Temp = ( input.R( I,J ) + input.G( I,J ) + input.B( I,J ) ) / 3
Output.R ( I,J ) = Temp
Output.G ( I,J ) = Temp
Output.B ( I,J ) = Temp
End For

End For

M.A.H.S.A
09-08-2011, 11:04 AM
شکل زیر یک تصویر RGB را نشان می دهد


http://www.forum.microrayaneh.com/download/file.php?id=887





شکل زیر نیز تصویر حاصل از اجرای الگوریتم Grayscale را نشان می دهد :


http://www.forum.microrayaneh.com/download/file.php?id=888





از آنجا که مقادیر ماتریس های R , G , B پس از Grayscale کردن تصویر باهم برابر هستند ، بنابراین می توان تنها از یک ماتریس برای نشان دادن مقادیر استفاده کرد. در الگوریتم های بعدی که برای پردازش تصویر ارائه خواهند شد از تصاویر Grayscale استفاده خواهیم کرد . بنابراین عملیات نیز بر روی تنها یک ماتریس انجام خواهد پذیرفت.


میکرو رایانه