Pnmsmooth User Manual(0) Pnmsmooth User Manual(0)

pnmsmooth - هموارسازی یک تصویر

pnmsmooth [-width=cols] [-height=rows] [pnmfile] [-size]

کوتاه‌ترین شکل یکتای اختصاری گزینه‌ها پذیرفته می‌شود. می‌توانید به جای یک خط تیره از دو خط تیره برای مشخص کردن گزینه‌ها استفاده کنید. همچنین می‌توانید به جای علامت مساوی از فاصله خالی (whitespace) برای جدا کردن نام گزینه از مقدار آن استفاده نمایید.

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

دستور pnmsmooth با جایگزین کردن هر پیکسل با میانگین همسایه‌های عرض در ارتفاع (width X height) آن، تصویر را هموار می‌کند. این دستور به صورت برنامه‌ای پیاده‌سازی شده است که pnmconvol را با یک ماتریس کانولوشن مناسب فراخوانی می‌کند.

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

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

پیش از Netpbm 10.49 (دسامبر ۲۰۰۹)، بیشینه اندازه ماتریس کانولوشن توسط maxval تصویر محدود می‌شد؛ به طوری که حاصل‌ضرب width * height * 2 نباید از maxval تجاوز می‌کرد (در صورت نیاز از pamdepth برای افزایش maxval استفاده کنید).

این گزینه‌ها در Netpbm 10.32 (فوریه ۲۰۰۶) جدید بودند. پیش از آن، از -size استفاده می‌شد.

این گزینه منسوخ‌شده برای حفظ سازگاری عقبرو در نسخه کنونی Netpbm وجود دارد. این گزینه در Netpbm 10.32 (فوریه ۲۰۰۶) توسط -width و -height منسوخ شد.

هنگامی که از این گزینه استفاده می‌کنید، دو آرگومان نخست برنامه به ترتیب عرض و ارتفاع ماتریس کانولوشن خواهند بود و کاری مشابه مقادیر گزینه‌های -width و -height انجام می‌دهند. آرگومان سوم برنامه (اختیاری) نام فایل ورودی است.

در واقع، در نسخه‌های قدیمی pnmsmooth، عرض و ارتفاع دو مقدار برای گزینه -size بودند، اما پارادایم نوین نحو دستورهای Netpbm گزینه‌ای با چند مقدار را مجاز نمی‌داند؛ بنابراین -size به گزینه‌ای بدون مقدار تبدیل شده و عرض و ارتفاع به صورت آرگومان‌های برنامه دریافت می‌شوند. این تغییر خوشبختانه باعث شده تا دستور زیر در نسخه کنونی pnmsmooth همان معنای نسخه قدیمی pnmsmooth را داشته باشد:


     pnmsmooth -size 5 5 infile.ppm >outfile.ppm
این گزینه باعث می‌شود pnmsmooth فقط ماتریس کانولوشن را نمایش دهد. این دستور مقداری برای گزینه -matrix در pnmconvol را که ماتریس را بازنمایی می‌کند در خروجی استاندارد می‌نویسد. این گزینه pnmconvol را فراخوانی نمی‌کند و هیچ تصویر خروجی‌ای تولید نمی‌کند.

پیش از Netpbm 10.49 (دسامبر ۲۰۰۹)، عملکرد این گزینه کاملاً متفاوت بود. این گزینه یک نام فایل را به عنوان مقدار می‌گرفت و ماتریس کانولوشن را به صورت یک فایل PGM (که ورودی معمول برای pnmconvol به شمار می‌رفت) در آن فایل می‌نوشت.

pnmconvol(1)، pnm(1)

پیش از Netpbm 10.32 (فوریه ۲۰۰۶)، pnmsmooth از تجزیه‌کننده نوین خط فرمان Netpbm استفاده نمی‌کرد و نحو خط فرمان نامتعارفی داشت. مهم‌تر از همه، نمی‌توانستید از علامت مساوی یا دو خط تیره در گزینه‌ها استفاده کنید.

پیش از Netpbm 10.49 (دسامبر ۲۰۰۹)، گزینه -dump وجود داشت. این گزینه نامتعارف باعث می‌شد pnmsmooth هیچ هموارسازی انجام ندهد و هیچ تصویر خروجی تولید نکند، بلکه ماتریس کانولوشنی را که قصد داشت استفاده کند، به صورت یک فایل PGM (مشابه آنچه pnmconvol استفاده می‌کرد) در فایلی که تعیین می‌کردید بنویسد. ایده این بود که سپس بتوانید از آن فایل در فراخوانی جداگانه‌ای از pnmconvol استفاده کنید.

سپس در Netpbm 10.49، گزینه -dump با عملکردی نسبتاً متفاوت اما هدفی مشابه ارائه شد: این گزینه باعث می‌شد pnmsmooth رشته‌ای مناسب به عنوان مقدار برای گزینه -matrix در pnmconvol (گزینه‌ای که در Netpbm 10.49 اضافه شده بود) در خطای استاندارد بنویسد.

اما در Netpbm 10.51 (ژوئن ۲۰۱۰)، pnmconvol استفاده از گزینه باز هم جدیدتر pnmconvol یعنی -normalize (معرفی‌شده در 10.50) را آغاز کرد؛ گزینه‌ای که تعیین ماتریس کانولوشن را برای نوع هموارسازی pnmsmooth بسیار ساده کرد، بنابراین گزینه -dump از pnmsmooth حذف شد.

(همچنین مسائل مربوط به سادگی پیاده‌سازی مانع از آن شد که بتوان گزینه اصلی -dump را صرفاً برای سازگاری عقبرو حفظ کرد: با اعمال تغییرات در pnmsmooth برای بهره‌گیری از ویژگی‌های جدید pnmconvol — که pnmsmooth در داخل خود از آن استفاده می‌کند — اطلاعات مورد نیاز برای پیاده‌سازی -dump دیگر در برنامه موجود نبود).

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

http://netpbm.sourceforge.net/doc/pnmsmooth.html
19 December 2009 netpbm documentation