Pnmhisteq User Manual(0) Pnmhisteq User Manual(0)

pnmhisteq - متعادل‌سازی هیستوگرام در یک تصویر PNM

pnmhisteq

[-gray]

[-noblack] [-nowhite]

[-rmap pgmfile]

[-wmap pgmfile]

[-verbose]

[pnmfile]

این برنامه بخشی از Netpbm(1) است.

دستور pnmhisteq کنتراست یک تصویر PGM یا PPM را با استفاده از تکنیک «متعادل‌سازی هیستوگرام» (histogram equalization) افزایش می‌دهد.[1]

دستور pnmhisteq هیستوگرام درخشندگی (luminosity) پیکسل‌های تصویر را محاسبه می‌کند. سپس نگاشتی بین هر مقدار درخشندگی و یک درخشندگی جدید برقرار می‌کند؛ به گونه‌ای که سطوح شدت روشنایی را در اطراف قله‌های هیستوگرام گسترش می‌دهد و در فرورفتگی‌ها فشرده می‌سازد. به بیان دیگر، پیکسل‌ها را در هیستوگرام جابه‌جا می‌کند تا نمودار آن مسطح شود. سپس این نگاشت را روی تصویر ورودی اعمال می‌کند تا تصویر خروجی تولید شود. اثر این کار این است که تصویر دارای تعداد برابری پیکسل در هر سطح شدت روشنایی ممکن خواهد بود، بدین معنا که از سطوح شدت موجود بهره‌وری بیشتری برده و در نتیجه جزئیات قابل مشاهده بیشتری خواهد داشت.

از نظر ریاضی، نگاشت درخشندگی به این صورت است: فرض کنید پیکسل‌ها بر اساس درخشندگی در B دسته (bucket) که از 0 (کمترین درخشندگی) تا B-1 شماره‌گذاری شده‌اند مرتب شوند. N[i] تعداد پیکسل‌های موجود در دسته i است. T تعداد کل پیکسل‌ها (مجموع N[i] روی تمام iها) است. W درخشندگی رنگ سفید است.

دستور pnmhisteq پیکسلی از ورودی را که درخشندگی آن در دسته j قرار می‌گیرد با پیکسلی جایگزین می‌کند که درخشندگی آن به این شرح است:

 j
---
\
 > (N[i] / T) * W
/
---
i=0

برای سادگی، با در نظر گرفتن یک تصویر سیاه و سفید (grayscale)، این بدان معناست که پیکسل‌های درخشان‌ترین دسته به رنگ سفید درمی‌آیند. پیکسل‌های موجود در صدک دهم درخشندگی به ۱۰٪ سفید تبدیل می‌شوند.

دستور pnmhisteq یک سطح درخشندگی در ورودی را به یک سطح درخشندگی در خروجی نگاشت می‌کند. این یعنی اگر هر دو پیکسل A و B در ورودی دارای درخشندگی 0.2 باشند، و در خروجی پیکسل A دارای درخشندگی 0.4 شود، پیکسل B نیز در خروجی درخشندگی 0.4 خواهد داشت. و از آنجا که مقادیر درخشندگی در ورودی پیوسته نیستند، درخشندگی‌ها در خروجی نیز پیوسته نخواهند بود و pnmhisteq نمی‌تواند به ایده‌آلِ داشتن تعداد دقیقاً برابر از پیکسل‌ها برای هر درخشندگی در خروجی برسد.

اگر مجموعه‌ای مرتبط از تصاویر (مانند فریم‌های یک پویانمایی) را پردازش می‌کنید، عموماً بهتر است همان نگاشت درخشندگی یکسان را روی تک‌تک فریم‌ها اعمال کنید؛ زیرا در غیر این صورت تغییرات حواس‌پرت‌کننده‌ای در روشنایی اشیاء بین فریم‌ها ایجاد می‌شود. گزینه -wmap در pnmhisteq به شما اجازه می‌دهد نگاشت درخشندگی محاسبه‌شده از یک تصویر را به صورت یک تصویر PGM ذخیره کنید. گزینه -rmap باعث می‌شود pnmhisteq از چنین تصویری به عنوان نگاشت درخشندگی خود استفاده کند.

بنابراین می‌توانید pnmhisteq را با گزینه -wmap روی یک تصویر ترکیبی که با pamcat از تصاویر مدنظرتان ساخته‌اید اجرا کنید. سپس می‌توانید pnmhisteq را با گزینه -rmap روی هر یک از تصاویر منفرد، با استفاده از نگاشت درخشندگی به‌دست‌آمده از تصویر ترکیبی، اجرا نمایید.

برای مشاهده نتیجه از pnmhistmap استفاده کنید. یک تصویر رنگی را ابتدا از طریق ppmtopgm پردازش کنید تا به جای هیستوگرام سه مولفه رنگی، هیستوگرام درخشندگی را مشاهده کنید. خروجی باید به طور کلی یک هیستوگرام مسطح را نشان دهد. اما به دلیل اثرات کوانتیزاسیون شرح‌داده‌شده در بالا، ممکن است ستون‌های بلند را در میان ستون‌های کوتاه مشاهده کنید، در حالی که میانگین محلی مسطح است. برای دیدن میانگین‌های محلی، از گزینه -width در pnmhistmap استفاده کنید.

علاوه بر گزینه‌های مشترک در تمام برنامه‌های مبتنی بر libnetpbm (به ویژه -quiet، به گزینه‌های مشترک (Common Options) مراجعه کنید)، pnmhisteq گزینه‌های خط فرمان زیر را به رسمیت می‌شناسد:

شما می‌توانید هر گزینه را به کوتاه‌ترین پیشوند یکتای آن مخفف کنید.

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

گاهی اوقات رنگ سیاه نه یک رنگ واقعی، بلکه پس‌زمینه یا حاشیه‌ای برای رنگ‌های واقعی است؛ بنابراین مایلید با آن به طور ویژه برخورد شود. تصویری از ستارگان را تصور کنید که تقریباً سراسر سیاه است، اما ستارگان فراوانی با درخشندگی‌های متفاوت دارد. شما می‌خواهید درخشندگی ستارگان را تغییر دهید تا تضاد میان آنها به حداکثر برسد؛ اما اگر سیاهی پس‌زمینه را به عنوان داده معنادار در نظر می‌گرفتید، تمام ستارگان تقریباً به سفیدی کامل میل می‌کردند.

این گزینه در Netpbm 10.70 (مارس ۲۰۱۵) اضافه شد.

مشابه -noblack، اما برای پیکسل‌های سفید.

در صورت تمایل می‌توانید از هر دو گزینه -noblack و -nowhite استفاده کنید.

این گزینه در Netpbm 10.70 (مارس ۲۰۱۵) اضافه شد.

تصویر را با استفاده از نگاشت درخشندگی مشخص‌شده در فایل PGM به نام mapfile پردازش می‌کند.

تصویر PGM که معمولاً با اجرای قبلی pnmhisteq همراه با گزینه -wmap ایجاد شده است، شامل یک سطر با تعداد ستون‌هایی برابر با مقدار maxval (بزرگ‌ترین مقدار شدت روشنایی) تصویر به اضافه یک است. هر پیکسل تصویر با جستجوی مقدار درخشندگی خود در ستون متناظر در فایل نگاشت (شماره ستون = درخشندگی) و تغییر آن به مقدار ارائه‌شده توسط آن ستون تبدیل می‌شود.

یک فایل PGM به نام mapfile ایجاد می‌کند که حاوی نگاشت درخشندگی محاسبه‌شده از هیستوگرام تصویر ورودی است. این فایل نگاشت می‌تواند در اجراهای بعدی pnmhisteq با گزینه -rmap خوانده شود، که اجازه می‌دهد گروهی از تصاویر با نگاشتی کاملاً یکسان پردازش شوند.
هیستوگرام و نگاشت درخشندگی را روی خطای استاندارد (Standard Error) چاپ می‌کند.

متعادل‌سازی هیستوگرام برای افزایش جزئیات قابل مشاهده در تصاویر علمی و برخی تصاویر با تن پیوسته (continuous-tone) موثر است. با این حال، اغلب برای تصاویر اسکن‌شده نیمه‌سایه (halftone) بیش از حد شدید است، جایی که ناهنجاری‌ها و جلوه‌های ساختگی نیمه‌سایه را کاملاً آشکار می‌کند. ممکن است بخواهید pnmnorm و pnmgamma را برای بهبود ظریف‌تر کنتراست آزمایش کنید.

فایل نگاشت درخشندگی ارائه‌شده توسط گزینه -rmap باید دارای همان maxval تصویر ورودی باشد. این شرط همواره هنگامی که فایل نگاشت توسط گزینه -wmap از pnmhisteq ایجاد شده باشد برقرار است. اگر این محدودیت مشکلی ایجاد کرد، به سادگی maxval فایل نگاشت را با pamdepth تنظیم کنید تا با تصویر ورودی مطابقت یابد.

اگر ورودی یک فایل PBM باشد (که متعادل‌سازی هیستوگرام روی آن یک عملیات همانی است)، تنها اثر عبور دادن فایل از pnmhisteq صرفاً گذر زمان خواهد بود.

pnmnorm(1), pamcat(1), pamdepth(1), pnmgamma(1), pnm(1),

[1]
Russ, John C. The Image Processing Handbook. Boca Raton: CRC Press, 1992. Pages 105-110.

این صفحه راهنما توسط ابزار 'makeman' در Netpbm از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد:

http://netpbm.sourceforge.net/doc/pnmhisteq.html
22 March 2015 netpbm documentation