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


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





برای به دست آوردن هیستوگرام تصویر ،کافی است با پیمایش کل پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم . هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [0,1] قرار گیرند. شکل روبرو تصویری را به همراه هیستوگرام نرمال آن نشان می دهد .

یکی از کاربـردهـای هیستوگرام در فوکوس خودکـار دوربین های دیجیتالی است. بـدین صورت



که لنز دوربین از ابتدا تا انتها حرکت کرده و در هر گام از حرکت خود تصویری از صحنه می گیرد. سپس کنتراست تصویر گرفته شده را با استفاده از هیستوگرام آن محاسبه می کند. پس از آن که لنز به انتهای حرکتی خود رسید، محلی از حرکت لنز که در آن تصویر دارای بیشترین کنتراست خود بوده است، به عنوان محل لنز تعیین می گردد.
روش مذکور یکی از ساده ترین روش های فوکوس خودکار دوربین می باشد و همانطور که می توان حدس زد این الگوریتم در صحنه هایی که رنگ تیره و روشن باهم وجود داشته باشد، دچار اشکالاتی خواهد بود و باید تغییراتی در آن اعمال کرد (مفهوم کنتراست در ادامه بیان شده است).

تعدیل هیستوگرامیکی دیگر از کاربردهای هیستورگرام در افزایش کنتراست تصاویر با کنتراست پایین است. زمانی که می گوییم کنتراست تصویری کم است این بدان معنا است که اختلاف بین کمترین و بیشتری شدت روشنایی تصویر کم است. هم تعدیل سازی هیستوگرام موجب می شود که کنتراست تصویر ورودی تا حد ممکن افزایش یابد. به عنوان مثال شکل زیر تصویری را قبل و بعد از تعدیل سازی هیستوگرام نشان می دهد:




تصویر خروجی پس از تعدیل هیستوگرام
تصویر ورودی و هیستوگرام آن



الگوریتم زیر روش تعدیل سازی هیستوگرام را نشان می دهد :
1 ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.
2 ) با استفاده از فرمول زیر فراوانی هیستوگرام را محاسبه می کنیم :
کد:
histCum[ i ] = histCum[ i-1 ] + hist[ i ]
3 ) از فرمول زیر استفاده کرده و هیستوگرام تعدیل شده را محاسبه می کنیم :
کد:
eqHist[i] = Truncate( [(L * histCum[i]) – N]/N )
4 ) در مرحله نهایی مقادیر جدید پیکسل ها را به صورت زیر مقدار دهی می کنیم :
کد:
Result[ i , j ] = eqHist[ input[ i , j ] ]

که در این فرمول L تعداد سطوح خاکستری و N تعداد کل پیکسل ها، Result تصویر خروجی و

input تصویر ورودی را نشان می دهند.

پردازش تصویر در MATLAB
تعدیل سازی هیستوگرام در MATLAB با استفاده از تابع histeq و به شکل زیر انجام می پذیرد :
کد:
>> I = imread('tire.tif');
>> J = histeq(I);
>> figure, imshow(I), figure, imshow(J);



هیستوگرام تصویر هیستوگرام تصویر نموداری است که توسط آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص می شود. فرض کنید تصویر ورودی یک تصویر Grayscale با 256 سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر مقداری در بازه [255...0] می توانند داشته باشند.





برای به دست آوردن هیستوگرام تصویر ،کافی است با پیمایش کل پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم . هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [0,1] قرار گیرند. شکل روبرو تصویری را به همراه هیستوگرام نرمال آن نشان می دهد .

یکی از کاربـردهـای هیستوگرام در فوکوس خودکـار دوربین های دیجیتالی است. بـدین صورت



که لنز دوربین از ابتدا تا انتها حرکت کرده و در هر گام از حرکت خود تصویری از صحنه می گیرد. سپس کنتراست تصویر گرفته شده را با استفاده از هیستوگرام آن محاسبه می کند. پس از آن که لنز به انتهای حرکتی خود رسید، محلی از حرکت لنز که در آن تصویر دارای بیشترین کنتراست خود بوده است، به عنوان محل لنز تعیین می گردد.
روش مذکور یکی از ساده ترین روش های فوکوس خودکار دوربین می باشد و همانطور که می توان حدس زد این الگوریتم در صحنه هایی که رنگ تیره و روشن باهم وجود داشته باشد، دچار اشکالاتی خواهد بود و باید تغییراتی در آن اعمال کرد (مفهوم کنتراست در ادامه بیان شده است).

تعدیل هیستوگرامیکی دیگر از کاربردهای هیستورگرام در افزایش کنتراست تصاویر با کنتراست پایین است. زمانی که می گوییم کنتراست تصویری کم است این بدان معنا است که اختلاف بین کمترین و بیشتری شدت روشنایی تصویر کم است. هم تعدیل سازی هیستوگرام موجب می شود که کنتراست تصویر ورودی تا حد ممکن افزایش یابد. به عنوان مثال شکل زیر تصویری را قبل و بعد از تعدیل سازی هیستوگرام نشان می دهد:











تصویر خروجی پس از تعدیل هیستوگرام
تصویر ورودی و هیستوگرام آن



الگوریتم زیر روش تعدیل سازی هیستوگرام را نشان می دهد :
1 ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.
2 ) با استفاده از فرمول زیر فراوانی هیستوگرام را محاسبه می کنیم :

histCum[ i ] = histCum[ i-1 ] + hist[ i ]

3 ) از فرمول زیر استفاده کرده و هیستوگرام تعدیل شده را محاسبه می کنیم :

eqHist[i] = Truncate( [(L * histCum[i]) – N]/N )

4 ) در مرحله نهایی مقادیر جدید پیکسل ها را به صورت زیر مقدار دهی می کنیم :

Result[ i , j ] = eqHist[ input[ i , j ] ]


که در این فرمول L تعداد سطوح خاکستری و N تعداد کل پیکسل ها، Result تصویر خروجی و

input تصویر ورودی را نشان می دهند.

پردازش تصویر در MATLAB
تعدیل سازی هیستوگرام در MATLAB با استفاده از تابع histeq و به شکل زیر انجام می پذیرد :

کد:
>> I = imread('tire.tif');
>> J = histeq(I);
>> figure, imshow(I), figure, imshow(J);

منبع : zhyner
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
  


پیام‌های این موضوع
RE: سورس کد هیستوگرام در متلب - توسط Amin_Mansouri - 02-26-2012، 11:33 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: 2 مهمان