هیستوگرام تصویر
هیستوگرام تصویر
هیستوگرام
هیستوگرام تصویر یکی از ابزارهای آماری کلیدی در پردازش تصویر است که توزیع شدت روشنایی (Intensity) پیکسلهای تصویر را نشان میدهد. این ابزار برای تحلیل ویژگیهای تصویر، ارزیابی کیفیت، و بهبود کنتراست استفاده میشود. هیستوگرام بهویژه در شناسایی مشکلات کنتراست و طراحی الگوریتمهای بهبود تصویر نقش مهمی دارد. در متلب، توابع آمادهای مانند imhist، histeq، و imadjust برای کار با هیستوگرام و بهبود کنتراست ارائه شدهاند، اما میتوان الگوریتمهای سفارشی با عملکرد بهتر نیز طراحی کرد. در این مقاله، مفهوم هیستوگرام، روشهای بهبود کنتراست، و پیادهسازی آنها در متلب را بررسی میکنیم.
هیستوگرام تصویر چیست؟
هیستوگرام تصویر نموداری است که فراوانی شدت روشنایی پیکسلها (معمولاً در مقیاس 0 تا 255 برای تصاویر خاکستری) را نشان میدهد. محور افقی هیستوگرام مقادیر شدت روشنایی و محور عمودی تعداد پیکسلهای دارای آن شدت را نمایش میدهد.
ویژگیهای هیستوگرام
- کنتراست بالا: اگر هیستوگرام در کل بازه شدت روشنایی (0 تا 255) بهصورت یکنواخت توزیع شده باشد، تصویر کنتراست و وضوح بهتری دارد و جزئیات بیشتری نمایش میدهد.
- کنتراست پایین: اگر هیستوگرام در محدوده کوچکی متمرکز باشد (مثلاً بین 100 تا 150)، تصویر تیره یا روشن به نظر میرسد و جزئیات کمی دارد.
- هیستوگرام یکنواخت: توزیع یکنواخت نشاندهنده کنتراست بهینه است، زیرا تمام سطوح روشنایی بهخوبی در تصویر نمایان هستند.
روشهای بهبود کنتراست با استفاده از هیستوگرام
برای بهبود کنتراست تصاویر، الگوریتمهای مختلفی مبتنی بر دستکاری هیستوگرام وجود دارند. سه روش اصلی که در متلب استفاده میشوند عبارتاند از:
- یکسانسازی هیستوگرام (Histogram Equalization):
- مفهوم: این روش توزیع شدت روشنایی را بهگونهای تغییر میدهد که هیستوگرام بهصورت یکنواختتر شود، که منجر به بهبود کنتراست کلی تصویر میشود.
- مزایا: ساده و مؤثر برای تصاویر با کنتراست پایین.
- معایب: ممکن است نویز را تقویت کند یا در برخی تصاویر جزئیات را بیش از حد تغییر دهد.
- یکسانسازی هیستوگرام تطبیقی (Adaptive Histogram Equalization):
- مفهوم: برخلاف یکسانسازی کلی، این روش هیستوگرام را در نواحی محلی تصویر (مانند بلوکهای کوچک) تنظیم میکند تا کنتراست محلی بهبود یابد.
- مزایا: حفظ جزئیات محلی و مناسب برای تصاویر با تغییرات نوری زیاد.
- معایب: محاسبات سنگینتر و احتمال ایجاد مصنوعات (Artifacts).
- تنظیم شدت روشنایی (Contrast Stretching):
- مفهوم: این روش محدوده شدت روشنایی تصویر را به بازه جدیدی نگاشت میکند تا از کل بازه دینامیکی (مثلاً 0 تا 255) استفاده شود.
- مزایا: کنترل دقیقتر بر بازههای ورودی و خروجی.
- معایب: نیاز به تنظیم دقیق پارامترها.
پیادهسازی در متلب
متلب توابع قدرتمندی برای کار با هیستوگرام و بهبود کنتراست ارائه میدهد. در ادامه، کدهای نمونه برای نمایش هیستوگرام و اعمال روشهای بهبود کنتراست آورده شده است.
1. نمایش هیستوگرام تصویر
I = imread('pout.tif');
subplot 121; imshow (I)
subplot 122; imhist(I)

تحلیل: تصویر pout.tif معمولاً کنتراست پایینی دارد و هیستوگرام آن در محدوده کوچکی متمرکز است، که نشاندهنده کمبود جزئیات است.
2. یکسانسازی هیستوگرام
J = histeq(I);
subplot 121; imshow (J)
subplot 122; imhist(J)

تابع histeq هیستوگرام را یکنواختتر میکند، که منجر به بهبود کنتراست و نمایش بهتر جزئیات میشود.
3. یکسانسازی هیستوگرام تطبیقی
J = adapthisteq(I);
subplot 121; imshow (J)
subplot 122; imhist(J)

تابع adapthisteq کنتراست را در نواحی محلی بهبود میدهد، که برای تصاویری با تغییرات نوری زیاد مناسب است.
4. تنظیم شدت روشنایی (Contrast Stretching)
%J = imadjust(I,[low_in high_in],[low_out high_out])
J = imadjust(I,[0 1],stretchlim(I));
subplot 121; imshow (J)
subplot 122; imhist(J)

تابع stretchlim بهصورت خودکار محدودههای بهینه برای شدت روشنایی ورودی را محاسبه میکند، و imadjust این محدوده را به بازه کامل (0 تا 1) نگاشت میکند، که کنتراست را بهبود میدهد.
کاربردهای هیستوگرام و بهبود کنتراست
- تحلیل کیفیت تصویر: هیستوگرام برای شناسایی مشکلات کنتراست یا توزیع نامناسب روشنایی استفاده میشود.
- پردازش تصاویر پزشکی: بهبود کنتراست در تصاویر MRI یا CT برای تشخیص بهتر.
- عکاسی و ویرایش تصویر: افزایش وضوح و جزئیات در تصاویر دیجیتال.
- تشخیص اشیاء: هیستوگرام بهعنوان ویژگی در الگوریتمهای یادگیری ماشین برای شناسایی الگوها استفاده میشود.
- یادگیری عمیق: هیستوگرام و روشهای بهبود کنتراست بهعنوان پیشپردازش در شبکههای عصبی کاربرد دارند.
نکات پیشرفته
- تنظیم پارامترها: در روشهایی مانند imadjust، انتخاب دقیق بازههای ورودی و خروجی (low_in, high_in, low_out, high_out) میتواند نتایج را بهبود دهد.
- هیستوگرام رنگی: برای تصاویر رنگی، هیستوگرام بهصورت جداگانه برای کانالهای RGB محاسبه میشود.
- الگوریتمهای سفارشی: میتوان الگوریتمهای پیشرفتهتر مانند CLAHE (Contrast Limited Adaptive Histogram Equalization) را پیادهسازی کرد تا از تقویت بیشازحد نویز جلوگیری شود.
- ارزیابی کیفیت: معیارهایی مانند PSNR (Peak Signal-to-Noise Ratio) یا SSIM (Structural Similarity Index) برای مقایسه عملکرد الگوریتمهای بهبود کنتراست استفاده میشوند.
نتیجهگیری
هیستوگرام تصویر ابزاری قدرتمند برای تحلیل و بهبود کیفیت تصاویر است. با استفاده از توابعی مانند imhist، histeq، adapthisteq، و imadjust در متلب، میتوان کنتراست تصاویر را بهصورت مؤثری بهبود داد. هر روش مزایا و محدودیتهای خاص خود را دارد؛ برای مثال، یکسانسازی هیستوگرام برای تصاویر با کنتراست پایین مناسب است، در حالی که روش تطبیقی برای تصاویر با تغییرات نوری زیاد بهتر عمل میکند. با درک اصول هیستوگرام و تنظیم پارامترها، میتوان به نتایج بهتری در پردازش تصویر دست یافت. در آموزشهای بعدی، به بررسی تکنیکهای پیشرفتهتر مانند پردازش تصاویر رنگی و الگوریتمهای مبتنی بر یادگیری عمیق خواهیم پرداخت.
