• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 36 رای - 2.56 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: سورس کد هیستوگرام در متلب
حالت خطی
#2
به عنوان مثال تصویر روبرو که سایز آن 288 * 265 است از یک ماتریس که دارای 288 سطر و 265 ستون است برای نمایش تصویر استفاده می کند . هر پیکسل از این تصویر نیز مقداری بین 0 و 255 دارد . نقاط روشن مقادیری نزدیک به 255 و نقاط تیره مقادیر نزدیک به 0 دارد. همه توابع پردازش تصویر از این مقادیر استفاده کرده و اعمال لازم را بر روی تصویر انجام می دهند.


پردازش تصویر در MATLAB :
خواندن تصویر در محیط MATLAB با استفاده از تابع imread و نمایش آن توسط تابع imshow انجام می پذیرد. به عنوان مثال دستور زیر تصویر rice.png را خوانده و ماتریس مربوط به تصویر را در اختیار ما قرار می دهد(در مثال زیر این ماتریس با نام im مشخص شده است). مقدار هر عنصر در این ماتریس شدت روشنایی تصویر در آن نقطه را نشان می دهد :
کد:
>> im = imread('rice.png');
>> imshow(im);

خاکستری (Grayscale) کردن تصویر
در رایج ترین مدل رنگ گرافیک کامیوتری، رنگ ها از ترکیب سه رنگ قرمز، سبز و آبی به وجود می آیند که در مجموع 16581375 رنگ متفاوت توسط این سه مولفه می توان تولید کرد. این مدل رنگ در گرافیک کامپیوتری با نام RGB شناخته می شود. در کنار مدل رنگ RGB مدل های دیگری همچون CMYK ، HSI ، HSV و Grayscale نیز وجود دارد که هریک از آن ها به روش متفاوتی به نمایش رنگ ها می پردازند. در این بین مدل رنگ Grayscale از اهمیت ویژه ای برای ما برخوردار است. چرا که در بیشتر کاربردها نیازی به یک تصویر رنگی نمی باشد و داشتن تنها یک تصویر خاکستری کافی خواهد بود. در میان عموم ، تصویر خاکستری با نام تصویر سیاه و سفید شناخته می شود (البته استفاده از نام سیاه سفید به جای خاکستری اشتباه است و در اینجا فقط برای روشن تر شدن مطلب از این نام استفاده کرده ایم)

یک تصویر RGB متشکل از سه ماتریس است که هریک از آنها مقادیر Red ( قرمز ) ، Green ( سبز ) و Blue ( آبی ) تصویر رنگی را نگه می دارند. نمایش تصویر بر روی صفحه نمایش نیز از ترکیب مقادیر درآیه های متناظر در سه ماتریس انجام می پذیرد. همانطور که در ابتدا یادآور شدیم ، در بیشتر کاربردها نیازی به تصویر رنگی نداریم و استفاده از یک تصویر خاکستری کافی خواهد بود. یک پیکسل زمانی مقدار خاکستری خواهد داشت که مولفه های R ، G و B آن مقادیر یکسانی داشته باشند. با توجه به این تعریف، در مواردی که تصویر ورودی یک تصویر RGB است، برای Grayscale کردن آن از فرمول زیر می توانیم استفاده می کنیم :
کد:
S_R(x, y) = S_G(x, y) = S_B(x, y) = [R(x, y) + G(x, y) + B(x, y)] / 3
در این فرمول S_X مولفه های تصویر خروجی و R ، G و B هر یک به تریبب ماتریس مولفه های سبز قرمز و آبی تصویر ورودی می باشند. شبه کد زیر نحوه 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
End

شکل زیر یک تصویر RGB را به همراه تصویر خاکستری آن نشان می دهد :



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

پردازش تصویر در MATLAB :
برای خاکستری کردن یک تصویر RGB می توان از تابع rgb2gray استفاده کرد. به عنوان مثال تکه کد زیر یک تصویر رنگی را خوانده و آن را به تصویر خاکستری تبدیل می کند:
کد:
>> im = imread('onion.png');
>> imshow(im);
>> imGray = rgb2gray(im);
>> imshow(imGray);
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
  


پیام‌های این موضوع
RE: سورس کد هیستوگرام در متلب - توسط Amin_Mansouri - 02-26-2012، 11:29 AM
RE: سورس کد هیستوگرام در متلب - توسط thania - 04-06-2012، 06:08 PM
RE: سورس کد هیستوگرام در متلب - توسط neno - 04-08-2014، 09:16 AM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  متلب چیست؟ Amin_Mansouri 2 8,245 07-10-2017، 03:34 PM
آخرین ارسال: shivanno18
  سورس NAND Checker Amin_Mansouri 1 4,384 07-10-2017، 03:33 PM
آخرین ارسال: shivanno18
  حل اين مسئله در متلب (هيستوگرام) adel28 0 2,463 06-29-2016، 10:57 AM
آخرین ارسال: adel28
  مجموعه سورس کد پردازش تصاویر ( متلب ) Amin_Mansouri 4 19,746 08-21-2015، 10:56 AM
آخرین ارسال: عبادی
  لود کردن داده های ایکسل در متلب roya8108 1 5,757 06-09-2014، 02:03 PM
آخرین ارسال: Amin_Mansouri
  سورس برنامه جاوا Sanazjoon 0 3,386 05-20-2014، 08:06 PM
آخرین ارسال: Sanazjoon
  مقاله و سورس کد شناسایی ماشین و انسان در پردازش تصاویر Amin_Mansouri 0 5,983 05-06-2013، 07:15 PM
آخرین ارسال: Amin_Mansouri
  افزایش وضوح تصویر با نرم افزار متلب taranom_0123 1 7,708 11-03-2012، 11:22 AM
آخرین ارسال: Amin_Mansouri
  زبان برنامه‌نویسی متلب Amin_Mansouri 1 7,234 10-24-2012، 02:01 PM
آخرین ارسال: mehdi_farajpour
  سورس زیر نحوه گرفتن سیگنال و کار کردن با جی پی اس (متلب) Amin_Mansouri 0 4,319 09-10-2012، 11:47 AM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


Browsing: 14 مهمان