هیستوگرام (بافت نگار) چیست؟

تصاویر با کنتراست بالاو پایین و تفاوت آنها در هیستوگرام

بافت‌نگار

در علم آمار هیستوگرام یا بافت‌نگار یک نمودار ستونی و پله‌ای برای نشان دادن داده‌ها است.

برای نمونه بافت‌نگار فراوانی، نمودار مستطیلی با پایه‌ای به پهنای یک واحد بر روی هر مقدار مشاهده شده‌است که ارتفاع هر ستون آن برابر با فراوانی داده مورد نظر همخوانی دارد

نمودار بافت‌نگار همانند نمودار ستونی است و یگانه اختلافی که بین این دو وجود دارد، نمایش ستون‌هاست.

در پردازش تصویرها بافت‌نگار تصویر نموداری است که توسط آن تعداد پیکسل‌های هر سطح روشنایی در تصویر ورودی مشخص می‌شود.

بافت‌نگار

Iris Petal Length Histogram.svg

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

 

نمونه‌ای از یک بافت‌نگار

نمونه‌ای از یک بافت‌نگار

 در عکاسی

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

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

 منبع


هیستوگرام تصویر

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

در یک تصویر دیجیتال، مقادیر پیکسل‌ها بیانگر ویژگی‌های آن تصویر (مانند میزان روشنایی تصویر و وضوح تصویر) است. هیستوگرام یک تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر می‌باشد. مقادیر روشنایی (برای مثال ۰-۲۵۵) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان می‌گردد.

تصویر ۸ بیتی (۰-۲۵۵) در بالا و هیستوگرام همان تصویر در پایین. محور افقی بین ۰ تا ۲۵۵ و محور قائم نشانگر تعداد پیکسل‌ها است.

 

تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو

تصویری که هیستوگرام زیر از آن گرفته شده‌است

 هیستوگرام تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو.

منبع


 

نمودار هیستوگرام تصویر نموداری است که در آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص می شود. فرض کنید تصویر ورودی یک تصویر Grayscale با ۲۵۶ سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر در شدت روشنایی در بازه [۰٫٫۲۵۵] می توانند داشته باشند. برای به دست آوردن هیستوگرام تصویر ، با پیمایش پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم .

 

یک تصویر Grayscale و محاسبه هیستوگرام آن

هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [۰,۱] قرار گیرند. شکل زیر تصویری را به همراه هیستوگرام نرمال آن نشان می دهد :

 

 

دانه های برنج     هیستوگرام نرمال تصویر دانه های برنج

 

تعدیل هیستوگرام ( Histogram Equalization )

به تصویر زیر توجه کنید :

 

تصویر دانه های برنج با کنتراست پایین   هیستوگرام تصویر دانه های برنج با کنتراست پایین

 

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

 

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

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

 

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

۱ ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.

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

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

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

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

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

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

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

که Result تصویر خروجی و input تصویر ورودی را نشان می دهد

منبع


 

هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودار است. در تصویر شما با شدت نور سر و کار دارید که بازه آن برای تصویر خاکستری از ۰ تا ۲۵۵ است یعنی تعداد level ها یا bin ها ۲۵۶ تا است.

 

یک تصویر grayscale و هیستوگرام آن

 

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

 

تصویر رنگی و سه کانال هیستوگرام آن

 

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

نکته ای که وجود دارد این است که همیشه قرار نیست ۲۵۶ تا bin وجود داشته باشد. می توان ۱۰ تا bin تعریف کرد و در هر بازه هر bin فراوانی ها را با هم جمع کرد.

بین ها

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

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

 

تعقیب چهره شخص بدون detection در هر فریم

منبع

 


منابع

  1. https://fa.wikipedia.org
  2. https://fa.wikipedia.org
  3. http://smpro.blogfa.com
  4. http://www.7khatcode.com

1 دیدگاه

  1. رامین گفت:

    خیلی ممنون عالی بود

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *