بافتنگار
در علم آمار هیستوگرام یا بافتنگار یک نمودار ستونی و پلهای برای نشان دادن دادهها است.
برای نمونه بافتنگار فراوانی، نمودار مستطیلی با پایهای به پهنای یک واحد بر روی هر مقدار مشاهده شدهاست که ارتفاع هر ستون آن برابر با فراوانی داده مورد نظر همخوانی دارد
نمودار بافتنگار همانند نمودار ستونی است و یگانه اختلافی که بین این دو وجود دارد، نمایش ستونهاست.
در پردازش تصویرها بافتنگار تصویر نموداری است که توسط آن تعداد پیکسلهای هر سطح روشنایی در تصویر ورودی مشخص میشود.
بافتنگار
One of the Seven Basic Tools of Quality
معرفیکننده نخست : کارل پیرسون
کاربرد : توزیع احتمال. To roughly assess the of a given variable by depicting the frequencies of observations occurring in certain ranges of values
در عکاسی
بافتنگار (هیستوگرام) در عکاسی، به عنوان یک عملگر کاربردی مصطلح است و یکی از ابزارهای مفید و کارآمد در دوربینهای عکاسی دیجیتالبهشمار میرود. که با این نام (برای این عملگر) چنین در بین کاربران مصطلح شدهاست و ارتباطی با کارکرد علمی آن ندارد.
بافتنگار به نموداری گفته میشود که فراوانی عناصری که در محور افقی آن قرار دارند را در محور عمودی نشان میدهد. بافتنگار عکس، شدت نور را، از کمترین مقدار تا بیشترین مقدار، در محور افقی و تعداد پیکسلهای هرکدام از آنها را در محور عمودی نشان میدهد.
توجه به بافتنگار، راه بسیار خوبی برای کنترل نوردهیدوربین و تصویر بوجود آمده است
منبع
هیستوگرام تصویر
در یک تصویر دیجیتال، مقادیر پیکسلها بیانگر ویژگیهای آن تصویر (مانند میزان روشنایی تصویر و وضوح تصویر) است. هیستوگرام یک تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر میباشد. مقادیر روشنایی (برای مثال ۰-۲۵۵) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان میگردد.
تصویر ۸ بیتی (۰-۲۵۵) در بالا و هیستوگرام همان تصویر در پایین. محور افقی بین ۰ تا ۲۵۵ و محور قائم نشانگر تعداد پیکسلها است.
منبع
نمودار هیستوگرام تصویر نموداری است که در آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص می شود. فرض کنید تصویر ورودی یک تصویر Grayscale با 256 سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر در شدت روشنایی در بازه [0..255] می توانند داشته باشند. برای به دست آوردن هیستوگرام تصویر ، با پیمایش پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم .
هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [0,1] قرار گیرند. شکل زیر تصویری را به همراه هیستوگرام نرمال آن نشان می دهد :
تعدیل هیستوگرام ( Histogram Equalization )
به تصویر زیر توجه کنید :
همانطور که از شکل و هیستوگرام تصویر مشخص است ، کنتراست تصویر فوق پایین می باشد. بدین مفهوم که اختلاف کمترین و بیشترین شدت روشنایی کم است. با تعدیل سازی هیستوگرام تصویر با کنتراست پایین ، تصویری با کنتراست بالا به دست می آید :
شکل فوق تصویر قبلی پس از انجام تعدیل سازی هیستوگرام را نشان می دهد. الگوریتم زیر روش تعدیل سازی یکنواخت هیستوگرام را نشان می دهد :
1 ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.
2 ) با استفاده از فرمول زیر فراوانی هیستوگرام را محاسبه می کنیم :
histCum[ i ] = histCum[ i-1 ] + hist[ i ]
3 ) از فرمول زیر استفاده کرده و هیستوگرام تعدیل شده را محاسبه می کنیم :
eqHist[i] = Truncate( [(L * histCum[i]) – N]/N )
که در این فرمول L تعداد سطوح خاسکتری و N تعداد کل پیکسل ها را نشان می دهد
4 ) در مرحله نهایی مقادیر جدید پیکسل ها را به صورت زیر مقدار دهی می کنیم :
Result[ i , j ] = eqHist[ input[ i , j ] ]
که Result تصویر خروجی و input تصویر ورودی را نشان می دهد
منبع
هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودار است. در تصویر شما با شدت نور سر و کار دارید که بازه آن برای تصویر خاکستری از 0 تا 255 است یعنی تعداد level ها یا bin ها 256 تا است.
حال اگر تصویر رنگی باشد 3 کانال مجزای خاکستری خواهد بود.
برای محاسبه هیستوگرام می بایست تعداد تکرار یا همون فرکانس شدت ها رو در تصویر محاسبه کرد یعنی تعداد هر شدت نور را در تصویر شمارش کرده و در level یا bin مربوط قرار داد.
نکته ای که وجود دارد این است که همیشه قرار نیست 256 تا bin وجود داشته باشد. می توان 10 تا bin تعریف کرد و در هر بازه هر bin فراوانی ها را با هم جمع کرد.
در OpenCV برای محاسبه هیستوگرام می توان از تابع calcHist استفاده کرد. تابع calcHist می تواند در چند کانال یا چند بعد هم هیستوگرام را محاسبه می کند و بایستی در هر کانال تعداد bin ها را مشخص کرد.
یک مثال عملی از کاربردهای هیستوگرام که ی توان بیان کرد: در فریم های متوالی هیستوگرام را مقایسه کنید مثلا شما قصد دارید چهره شخص را بدون detection در هر فریم تعقیب کنید برای اینکار می توانید از انواع ویژگی های تصویر استفاده کنید از جمله آنها انتقال اطلاعات گردایان بر روی هیستوگرام و هم انتقال اطلاعات شدت نور در کانال ها بر روی هیستوگرام و سپس مقایسه این هیستوگرام با فریم های قبلی.
منبع