هیستوگرام در پردازش تصویر - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

هیستوگرام در پردازش تصویر

+3 امتیاز
سلام دوستان.

هر چقدر تو wiki در مورد هستوگرام خوندم ولی بالاخره نفهمیدم چرا محاسبه میشه در زمینه پردازش تصویر آیا کاربرد داره یا فقط جنبه نمایشی داره و در ضمن تو کتابخانه OpenCV به چه صورت میشه از تصویر هیستوگرام تهیه کرد؟

 

ممنون لز دوستانی که جواب میدن
سوال شده آذر 22, 1392  بوسیله ی pedram (امتیاز 52)   4 9 13
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade

1 پاسخ

+6 امتیاز
 
بهترین پاسخ

هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودارهستش توی تصویر شما با شدت نور سر و کار دارید که بازه اون برای تصویر خاکستری از 0 تا 255 هستش یعنی تعداد level ها یا bin ها 256 تا ست.

حالا تصویر رنگی باشه میشه 3 کانال مجزای خاکستری.

برای محاسبه هیستوگرام شما بایستی تعداد تکرار یا همون فرکانس شدت ها رو توی تصویر محاسبه کنید یعنی تعداد هر شدت نور را توی تصویر بشمارید و توی level یا bin مربوط قرار بدید.

یک نکته ای وجود داره شما همیشه قرار نیست 256 تا bin داشته باشید می تونید 10 تا bin تعریف کنید و تو هر بازه هر bin فراوانی ها را با هم جمع کنید.

تو OpenCV برای محاسبه هیستوگرام می تونید از تابع calcHist استفاده کنید. تابع calcHist می تونه توی چند کانال یا چند بعد هم برای شما هیستوگرام محاسبه کنه و بایستی در هر کانال تعداد bin ها را مشخص کنید.

یک مثال عملی از کاربردهای هیستوگرام که میشه بیان کرد در فریم های متوالی هیستوگرام را مقایسه کنید مثلا شما قصد دارید چهره شخص را بدون detection در هر فریم تعقیب کنید برای اینکار می تونید از انواع ویژگی های تصویر استفاده کنید از جمله آنها انتقال اطلاعات گردایان بر روی هیستوگرام و هم انتقال اطلاعات شدت نور در کانال ها بر روی هیستوگرام و سپس مقایسه این هیستوگرام با فریم های قبلی.

پاسخ داده شده دی 2, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده فروردین 5, 1393 بوسیله ی BlueBlade
...