Pnmnlfilt User Manual(0) Pnmnlfilt User Manual(0)

pnmnlfilt - فیلترهای غیرخطی: هموارسازی، میانگین پیراسته آلفا، هموارسازی با برآورد بهینه و برجسته‌سازی لبه

pnmnlfilt alpha radius [pnmfile]

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

دستور pnmnlfilt یک تصویر خروجی تولید می‌کند که در آن هر پیکسل، خلاصه‌ای از چندین پیکسل پیرامون موقعیت متناظر در تصویر ورودی است.

این برنامه روی جریان‌های چندتصویری (multi-image streams) کار می‌کند.

این ابزار به نوعی مانند یک چاقوی سوئیسی در میان فیلترهاست و ۳ حالت عملکرد متمایز دارد. در تمامی این حالت‌ها، pnmnlfilt تک‌تک پیکسل‌های تصویر را بررسی کرده و آن‌ها را بر اساس مقدار خود پیکسل و پیکسل‌های اطراف آن پردازش می‌کند. pnmnlfilt به جای استفاده از یک بلوک مربعی از پیکسل‌های مجاور (مانند پیکسل هدف و ۸ همسایه مستقیم آن در یک مربع ۳×۳)، از ۷ ناحیه شش‌ضلعی استفاده می‌کند. شما اندازه شش‌ضلعی‌ها را با پارامتر radius مشخص می‌کنید. مقدار radius برابر با ۱/۳ بدین معناست که ۷ شش‌ضلعی اساساً درون پیکسل هدف قرار می‌گیرند (یعنی هیچ اثر فیلترکردنی اعمال نخواهد شد). مقدار radius معادل ۱.۰ بدین معناست که ۷ شش‌ضلعی اساساً مربع همسایه‌های مستقیم ۳×۳ را پوشش می‌دهند.

انتخاب شما برای پارامتر “alpha” حالت عملکرد را از بین این سه حالت مشخص می‌کند.

مقدار پیکسل مرکزی با میانگین مقادیر ۷ شش‌ضلعی جایگزین خواهد شد، اما مقادیر این ۷ شش‌ضلعی بر اساس اندازه مرتب می‌شوند و سهم alpha از بالا و پایین این ۷ مقدار، از میانگین‌گیری حذف می‌گردد. این بدان معناست که مقدار alpha برابر با ۰.۰ خروجی مشابه با یک کانولوشن معمولی (یعنی فیلتر میانگین‌گیر یا هموارساز) تولید می‌کند که در آن radius «شدت» فیلتر را تعیین خواهد کرد. یک مقدار مناسب برای شروع یک فیلتر ملایم، alpha = 0.0 و radius = 0.55 است. برای اثری مشهودتر و قوی‌تر، مقدار alpha برابر با ۰.۰ و radius برابر با ۱.۰ را امتحان کنید.

مقدار alpha برابر با ۰.۵ باعث می‌شود که مقدار میانه (median) ۷ شش‌ضلعی برای جایگزینی مقدار پیکسل مرکزی استفاده شود. این نوع فیلتر برای حذف نویزهای تک‌پیکسلی یا ضربه‌ای (“pop”) از تصویر بدون پخش کردن نویز یا تار کردن ویژگی‌های تصویر مناسب است. استفاده حساب‌شده از پارامتر radius فیلتر را با دقت تنظیم می‌کند. مقادیر میانی alpha اثری مابین هموارسازی و کاهش نویز تک‌پیکسلی ایجاد می‌کنند. برای فیلتر ملایم سعی کنید با مقادیر alpha = 0.4 و radius = 0.6 شروع کنید. برای اثری مشهودتر مقادیر alpha = 0.5 و radius = 1.0 را امتحان کنید.

این نوع فیلتر، یک فیلتر هموارساز را به صورت تطبیقی روی تصویر اعمال می‌کند. برای هر پیکسل، واریانس مقادیر شش‌ضلعی‌های اطراف محاسبه می‌شود و میزان هموارسازی با آن رابطه معکوس خواهد داشت. ایده این است که اگر واریانس کم باشد، ناشی از نویز در تصویر است، در حالی که اگر واریانس بالا باشد، به دلیل ویژگی‌های «مطلوب» تصویر است. طبق معمول، پارامتر radius شعاع مؤثر را کنترل می‌کند، اما احتمالاً توصیه می‌شود برای معنادار بودن محاسبه واریانس، مقدار radius بین ۰.۸ تا ۱.۰ در نظر گرفته شود. پارامتر alpha آستانه نویز را تعیین می‌کند که بالاتر از آن، هموارسازی کمتری اعمال خواهد شد. این بدان معناست که مقادیر کوچک alpha ملایم‌ترین اثر فیلتر را خواهند داشت، در حالی که مقادیر بزرگ گرایش به هموارسازی تمامی بخش‌های تصویر دارند. می‌توانید با مقادیری مانند alpha = 1.2 و radius = 1.0 شروع کنید و برای رسیدن به اثر مطلوب، پارامتر alpha را افزایش یا کاهش دهید. این نوع فیلتر برای حذف نویز ترام‌بندی (dithering noise) در هر دو تصویر نگاشت بیتی (bitmap) و رنگی بسیار مناسب است.

این نوع فیلتر، نقطه مقابل فیلتر هموارساز است و لبه‌ها را برجسته می‌کند. پارامتر alpha میزان برجسته‌سازی لبه را از حالتی ملایم (-0.1) تا بسیار شدید (-0.9) کنترل می‌کند. پارامتر radius طبق معمول شعاع مؤثر را کنترل می‌کند، اما مقادیر کاربردی بین ۰.۵ و ۰.۹ هستند. برای شروع مقادیر alpha = 0.3 و radius = 0.8 را امتحان کنید.

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

برای کاهش نویز کوانتیزاسیون رنگ در تصاویر (مثلاً تبدیل مجدد فایل‌های .gif به فایل‌های ۲۴ بیتی)، می‌توانید یک مرحله اعمال فیلتر برآورد بهینه (alpha 1.2, radius 1.0)، یک مرحله فیلتر میانه (alpha 0.5, radius 0.55) و در صورت نیاز یک مرحله فیلتر برجسته‌سازی لبه را امتحان کنید. اعمال چندین مرحله فیلتر برآورد بهینه با مقادیر نزولی alpha مؤثرتر از یک مرحله منفرد با مقدار alpha بزرگ است. طبق معمول، مصالحه‌ای بین کارایی فیلتر و از دست رفتن جزئیات وجود دارد. انجام آزمون و خطا توصیه می‌شود.

هیچ گزینه خط فرمانی که اختصاصاً برای pnmnlfilt تعریف شده باشد وجود ندارد، اما این برنامه گزینه‌های مشترک تمامی برنامه‌های مبتنی بر libnetpbm را تشخیص می‌دهد (نگاه کنید به
گزینه‌های مشترک
.)

فیلتر میانگین پیراسته آلفا (alpha-trimmed mean) بر اساس توصیف ارائه‌شده در IEEE CG&A مه ۱۹۹۰ صفحه ۲۳ توسط Mark E. Lee و Richard A. Redner است، و برای امکان تنظیم پیوسته alpha ارتقا یافته است.

فیلتر برآورد بهینه از مقاله‌ای با عنوان “Converting Dithered Images Back to Gray Scale” نوشته Allen Stenger در نشریه Dr Dobb's Journal، نوامبر ۱۹۹۲ گرفته شده است، و این مقاله به “Digital Image Enhancement and Noise Filtering by Use of Local Statistics” اثر Jong-Sen Lee در IEEE Transactions on Pattern Analysis and Machine Intelligence، مارس ۱۹۸۰ ارجاع می‌دهد.

جزئیات برجسته‌سازی لبه از pgmenhance(1) برگرفته شده است، که از برنامه “xim” اثر Philip R. Thompson اخذ شده و آن هم به نوبه خود از بخش ۶ مقاله “Digital Halftones by Dot Diffusion” نوشته D. E. Knuth در ACM Transaction on Graphics جلد ۶، شماره ۴، اکتبر ۱۹۸۷ گرفته شده است که خود برگرفته از دو مقاله در سال ۱۹۷۶ توسط .J. F. Jarvis و دیگران است.

پارامترها عبارتند از:

مقدار alpha (توضیح داده شده در بالا)، به صورت ده‌دهی. می‌تواند مقداری اعشاری باشد.
شعاع یا radius (توضیح داده شده در بالا)، به صورت ده‌دهی. می‌تواند مقداری اعشاری باشد.

pgmenhance(1), pnmconvol(1), pnm(1)

Graeme W. Gill graeme@labtam.oz.au

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

http://netpbm.sourceforge.net/doc/pnmnlfilt.html
24 October 2006 netpbm documentation