.\" This man page was generated by the Netpbm tool 'makeman' from HTML source. .\" Do not hand-hack it! If you have bug fixes or improvements, please find .\" the corresponding HTML page on the Netpbm website, generate a patch .\" against that, and send it to the Netpbm maintainer. .TH "Pnmconvol User Manual" 0 "30 November 2018" "netpbm documentation" .SH "نام (NAME)" pnmconvol \- کانولوشن عمومی MxN بر روی یک تصویر Netpbm .UN synopsis .SH "خلاصه دستور (SYNOPSIS)" \fBpnmconvol\fP { \fB-matrix=\fP\fIconvolution_matrix\fP | \fB-matrixfile=\fP\fIfilename\fP[\fB,\fP\fIfilename\fP[\fB,\fP ...]] } [\fB-normalize\fP] [\fB-bias=\fIn\fP\fP] [\fInetpbmfile\fP] .PP \fBpnmconvol\fP \fIconvolution_matrix_file\fP [\fB-normalize\fP] [\fB-nooffset\fP] [\fInetpbmfile\fP] .PP حداقل اختصار یکتای هر گزینه پذیرفته می‌شود. می‌توانید برای مشخص کردن گزینه‌ها به جای یک خط تیره از دو خط تیره استفاده کنید. همچنین می‌توانید به جای علامت مساوی، از فاصله برای جدا کردن نام گزینه از مقدار آن استفاده نمایید. .UN description .SH "توضیحات (DESCRIPTION)" .PP این برنامه بخشی از .BR "Netpbm" (1)\c \& است. .PP دستور \fBpnmconvol\fP یک تصویر Netpbm را به عنوان ورودی می‌خواند، عملیات کانولوشن را با یک ماتریس کانولوشن مشخص روی آن اعمال می‌کند، و یک تصویر Netpbm را در خروجی می‌نویسد. .PP یک کاربرد معمول کانولوشن، تار کردن (blurring) تصویر است. به مثال‌های موجود در راهنمای .BR "\fBpamgauss\fP" (1)\c \& مراجعه کنید. .PP کانولوشن به معنای جایگزین کردن هر پیکسل با میانگین وزنی پیکسل‌های مجاور آن است. وزن‌ها و ناحیه میانگین‌گیری توسط ماتریس کانولوشن (که گاهی هسته یا کرネル کانولوشن نامیده می‌شود) تعیین می‌شوند، که می‌توانید آن را به یکی از چند روش موجود ارائه دهید. بخش .UR #convolmatrix ماتریس کانولوشن (Convolution Matrix) .UE \& را ببینید. .PP در لبه‌های تصویر کانولوشن‌شده، جایی که ماتریس کانولوشن از مرز تصویر فراتر می‌رود، \fBpnmconvol\fP صرفاً پیکسل‌های ورودی را مستقیماً به خروجی کپی می‌کند. در اغلب موارد بهتر است پیکسل‌های نزدیک لبه با فرض وجود یک رنگ خالی یا پس‌زمینه فراتر از لبه پردازش شوند. برای این کار، از \fBpnmpad\fP استفاده کنید تا حاشیه‌ای در اطراف تصویر ایجاد کند که اندازه آن در هر بعد، نصف اندازه ماتریس کانولوشن (بدون احتساب عنصر مرکزی) باشد. (به عنوان مثال، اگر ماتریس کانولوشن شما دارای عرض ۵ و ارتفاع ۳ است، از \f(CWpnmpad -left=2 -right=2 -top=1 -bottom=1\fP استفاده کنید). تصویر بزرگ‌شده را به \fBpnmconvol\fP بدهید، سپس با استفاده از \fBpamcut\fP لبه‌های اضافی خروجی کانولوشن را برش دهید تا ابعاد تصویر به اندازه اصلی بازگردد (برای مثال: \f(CWpamcut -left=2 -right=-2 -top=1 -bottom=-1\fP). .PP محاسبات کانولوشن ممکن است به مقداری منجر شود که خارج از محدوده قابل نمایش در خروجی باشد. هنگامی که این اتفاق می‌افتد، \fBpnmconvol\fP مقدار خروجی را برش می‌دهد (clip می‌کند)، که این امر به معنای حفظ نشدن روشنایی خواهد بود. .PP برای جلوگیری از برش خوردن مقادیر (clipping)، ممکن است بخواهید مقادیر ورودی خود را مقیاس‌بندی کنید. به عنوان مثال، اگر ماتریس کانولوشن شما ممکن است مقدار خروجی‌ای تولید کند که تا دو برابر حداکثر مقدار در ورودی باشد، مطمئن شوید که maxval ورودی (که هم‌زمان maxval خروجی نیز خواهد بود) حداقل دو برابر حداکثر مقدار واقعی در ورودی باشد. .PP برش مقادیر منفی نیازمند توجه ویژه‌ای است. اگر ماتریس کانولوشن شامل اعداد منفی باشد، این احتمال وجود دارد که \fBpnmconvol\fP مقدار یک پیکسل خروجی را عددی منفی محاسبه کند، که در این حالت \fBpnmconvol\fP طبیعتاً آن را به صفر برش می‌دهد، زیرا فرمت‌های Netpbm قادر به نمایش اعداد منفی نیستند. .UN convolmatrix .SS "ماتریس کانولوشن (Convolution Matrix)" .PP سه روش برای تعیین ماتریس کانولوشن وجود دارد: .IP \(bu مستقیماً با گزینه \fB-matrix\fP. .IP \(bu در یک فایل (یا مجموعه‌ای از آن‌ها) که با گزینه \fB-matrixfile\fP مشخص می‌شود، و محتوای آن مشابه با مقدار گزینه \fB-matrix\fP است. .IP \(bu با یک فایل ویژه PNM. .PP روش استفاده از فایل PNM سخت‌ترین راه است و فقط به این دلیل وجود دارد که تا پیش از Netpbm 10.49 (دسامبر ۲۰۰۹)، این تنها روش ممکن بود. .PP فایل ماتریس کانولوشن معمولی نسبت به مقدار گزینه \fB-matrix\fP خوانایی بهتری دارد و خط فرمان شما را خلوت‌تر می‌کند، اما نیازمند مدیریت یک فایل جداگانه است. با استفاده از فایل، می‌توانید ماتریس‌های کانولوشن مجزایی برای هر یک از مؤلفه‌های رنگی داشته باشید، کاری که با گزینه \fB-matrix\fP امکان‌پذیر نیست. .PP در هر صورت، ماتریس کانولوشنی که \fBpnmconvol\fP استفاده می‌کند ماتریسی از اعداد حقیقی است. این اعداد می‌توانند صحیح یا کسری، مثبت، منفی یا صفر باشند. .PP ماتریس کانولوشن همیشه دارای عرض و ارتفاع فرد است، تا یک عنصر مرکزی وجود داشته باشد. \fBpnmconvol\fP به صورت تمثیلی آن عنصر مرکزی را روی پیکسلی از تصویر ورودی قرار می‌دهد و به آن پیکسل و همسایگانش بر اساس ماتریس کانولوشن وزن می‌دهد تا پیکسل موجود در همان موقعیت از تصویر خروجی را تولید کند. .PP برای یک کانولوشن عادی، که در آن مقداری به ارزش کلی تصویر اضافه یا کم نمی‌کنید بلکه صرفاً آن را بازتوزیع می‌کنید، باید مطمئن شوید که مجموع تمام اعداد در ماتریس برابر با ۱ است. اگر چنین نباشد، \fBpnmconvol\fP هشدار می‌دهد. .PP عناصر ماتریس در واقع چندتایی‌ها (tuples) هستند، یکی برای هر نمونه در ورودی (یعنی اگر ورودی یک تصویر RGB باشد، هر عنصر ماتریس کانولوشن یک وزن برای قرمز، یکی برای سبز و یکی برای آبی دارد). .UN matrixopt .B مستقیماً در خط فرمان (Directly On the Command Line) .PP در اینجا مثال‌هایی از گزینه \fB-matrix\fP آورده شده است: .nf \f(CW -matrix=0,.2,0;.2,.2,.2;0,.2,0 \fP .fi .nf \f(CW -matrix=-1,3,-1 \fP .fi .PP مقدار شامل هر سطر از ماتریس از بالا به پایین است که با نقطه-ویرگول (;) از یکدیگر جدا شده‌اند. هر سطر شامل عناصر آن سطر از چپ به راست است که با ویرگول (,) از هم جدا شده‌اند. طبیعتاً تعداد عناصر در هر سطر باید برابر باشد. هر عنصر یک عدد ممیز شناور ده‌دهی است و وزنی را مشخص می‌کند که باید به هر مؤلفه از پیکسلی که متناظر با آن موقعیت ماتریس است، اختصاص داده شود. .PP توجه داشته باشید هنگامی که این گزینه را در پوسته وارد می‌کنید، نقطه-ویرگول (";") معمولاً برای پوسته معنای خاصی دارد، بنابراین از علامت‌های نقل‌قول استفاده کنید. .PP با این روش راهی برای اختصاص وزن‌های متفاوت به مؤلفه‌های مختلف یک پیکسل وجود ندارد. .PP گزینه \fB-normalize\fP اغلب همراه با \fB-matrix\fP بسیار کاربردی است زیرا به شما امکان می‌دهد بدون نیاز به انجام محاسبات ریاضی جهت اطمینان از بدون انحراف (بایاس) بودن ماتریس، دستور را به سرعت اجرا کنید. توجه داشته باشید که اگر از گزینه \fB-normalize\fP استفاده کنید، وزن‌های موجود در ماتریس دقیقاً همان اعدادی نخواهند بود که در گزینه \fB-matrix\fP مشخص کرده‌اید. .UN matrixfile .B فایل ماتریس معمولی (Regular Matrix File) .PP نام فایل ماتریس را با گزینه \fB-matrixfile\fP مشخص کنید؛ یا فهرستی از آن‌ها را، یکی برای هر صفحه (plane) تصویر، تعیین نمایید. .PP مثال‌ها: .nf \f(CW -matrixfile=mymatrix \fP \f(CW -matrixfile=myred,mygreen,myblue \fP .fi .PP هر فایل به ترتیب به یک صفحه از تصویر (مانند قرمز، سبز، یا آبی) اعمال می‌شود. ماتریس درون هر فایل باید ابعاد یکسانی داشته باشد. اگر تصویر ورودی صفحات بیشتری نسبت به تعداد فایل‌های مشخص‌شده داشته باشد، نخستین فایل به صفحات اضافی نیز اعمال خواهد شد. .PP دستور \fBpnmconvol\fP فایل را به صورت متنی تفسیر می‌کند، که خطوط آن با نویسه‌های خط جدید یونیکس (line feeds) جدا شده‌اند. .PP هر خط از فایل نشان‌دهنده یک سطر از ماتریس، به ترتیب از بالا به پایین است..PP برای هر سطر، فایل شامل یک عدد اعشاری ممیز شناور برای هر عنصر در سطر، از چپ به راست، و جداشده با فاصله (space) است. این فقط یک فاصله خالی دلخواه نیست \-\- بلکه دقیقاً یک فاصله است. دو فاصله متوالی در یک سطر به این معنی است که شما یک رشته تهی را برای یک عنصر مشخص کرده‌اید (که نامعتبر است). اگر می‌خواهید ماتریس خود را از نظر بصری تراز کنید، برای این کار از صفرهای ابتدایی و انتهایی در اعداد ممیز شناور استفاده کنید. .PP هیچ روشی برای قرار دادن یادداشت (کامنت) در فایل وجود ندارد. هیچ امضا یا فرادادهٔ دیگری نیز در فایل وجود ندارد. .PP توجه داشته باشید که اگر از گزینهٔ \fB-normalize\fP استفاده کنید، وزن‌های موجود در ماتریس در عمل دقیقاً همان مقادیری نخواهند بود که در فایل آمده است. .UN matrixpnm .B "فایل PNM (PNM File)" .PP پیش از Netpbm نسخهٔ 10.49 (دسامبر 2009)، این تنها راه برای تعیین یک ماتریس کانولوشن بود. \fBpnmconvol\fP از این روش در تلاشی برای بهره‌برداری از قابلیت‌های عمومی پردازش ماتریس Netpbm استفاده می‌کرد، اما از آنجا که قالب‌های Netpbm مستقیماً ماتریس‌هایی با انواع اعدادی که در یک ماتریس کانولوشن نیاز دارید را مجاز نمی‌دانند، استفاده از آن بسیار دشوار و دست‌وپاگیر است. در واقع، به‌هیچ‌وجه راهی برای تعیین برخی از ماتریس‌های کانولوشن با یک تصویر استاندارد Netpbm وجود ندارد، بنابراین برای اینکه این سازوکار کار کند، \fBpnmconvol\fP مجبور است این الزام فایل Netpbm را که بر اساس آن مقادیر نمونه‌ها نباید بیشتر از maxval تصویر باشند، نادیده بگیرد. به این معنی که این فایل حتی یک فایل واقعی PNM نیز به حساب نمی‌آید. .PP روشی که این شیوه از ارائهٔ ماتریس کانولوشن را انتخاب می‌کنید این است که گزینه‌های \fB-matrix\fP یا \fB-matrixfile\fP را مشخص \fIنکنید\fP. وقتی این کار را انجام می‌دهید، باید نام فایل PNM (یا فایل PAM معادل PNM) را به عنوان یک آرگومان غیرگزینه‌ای (پیش از نام فایل ورودی اختیاری) تعیین کنید. .PP دو روش وجود دارد که \fBpnmconvol\fP پیکسل‌های تصویر ماتریس کانولوشن PNM را به عنوان وزن تفسیر می‌کند: با آفست (offset) و بدون آفست. .PP روش ساده‌تر از این دو، حالت بدون آفست است. این همان حالتی است که گزینهٔ \fB-nooffset\fP را مشخص می‌کنید. در این حالت، \fBpnmconvol\fP به سادگی مقادیر نمونه را در تصویر PNM با تقسیم بر maxval نرمال‌سازی می‌کند. .PP به عنوان مثال، در اینجا یک نمونه فایل کانولوشن آورده شده است که باعث می‌شود یک پیکسل خروجی میانگین ساده‌ای از پیکسل ورودی متناظرش و ۸ همسایهٔ آن باشد، که در نتیجه به یک تصویر هموارشده (smooth) منجر می‌شود: .nf P2 3 3 18 2 2 2 2 2 2 2 2 2 .fi .PP (توجه داشته باشید که متن بالا یک فایل واقعی PGM است \-\- می‌توانید آن را برش داده و جای‌گذاری کنید. اگر با ساختار قالب سادهٔ PGM آشنایی ندارید، .BR "the PGM format specification" (1)\c \& را ببینید). .PP ابزار \fBpnmconvol\fP هر یک از مقادیر نمونه (2) را بر maxval (18) تقسیم می‌کند، بنابراین وزنی که به هر یک از 9 پیکسل ورودی اختصاص می‌یابد 1/9 است، که دقیقاً همان مقداری است که برای ثابت نگه داشتن روشنایی کلی تصویر به آن نیاز دارید. \fBpnmconvol\fP یک پیکسل خروجی را با ضرب کردن مقادیر هر یک از 9 پیکسل در 1/9 و جمع کردن آن‌ها ایجاد می‌کند. .PP توجه داشته باشید که با maxval برابر با 18، محدودهٔ مقادیر ممکن 0 تا 18 است. پس از مقیاس‌بندی، محدوده 0 تا 1 خواهد بود. .PP برای یک کانولوشن معمولی، که در آن نه مقداری از مقدار کل تصویر کم می‌کنید و نه به آن می‌افزایید، بلکه صرفاً آن را جابه‌جا و بازتوزیع می‌کنید، باید مطمئن شوید که مجموع تمام مقادیر مقیاس‌بندی‌شده در (هر صفحه از) PNM کانولوشن شما برابر با 1 باشد، به این معنی که مجموع تمام مقادیر واقعی نمونه‌ها برابر با maxval شود. همچنین، می‌توانید از گزینهٔ \fB-normalize\fP استفاده کنید تا مقادیر مقیاس‌بندی‌شده را بیشتر مقیاس‌بندی کند تا مجموع همهٔ آن‌ها به طور خودکار برابر با 1 شود. .PP هنگامی که گزینهٔ \fB-nooffset\fP را مشخص \fIنمی‌کنید\fP، \fBpnmconvol\fP یک آفست اعمال می‌کند که هدف آن این است که به شما امکان دهد وزن‌های منفی را تعیین کنید، حتی با وجود اینکه مقادیر نمونهٔ PNM هرگز منفی نیستند. در این حالت، \fBpnmconvol\fP نیمی از مقدار maxval را از هر نمونه کم می‌کند و سپس با تقسیم بر نیمی از maxval نرمال‌سازی را انجام می‌دهد. بنابراین برای دستیابی به همان نتیجه‌ای که در بالا با \fB-nooffset\fP به دست آوردیم، تصویر ماتریس کانولوشن PNM باید به این شکل باشد: .nf P2 3 3 18 10 10 10 10 10 10 10 10 10 .fi .PP برای اینکه ببینید این فرایند چگونه کار می‌کند، آفست یادشده را اعمال کنید: 10 \- 18/2 مقدار 1 را به دست می‌دهد. مرحلهٔ نرمال‌سازی مقدار را بر 18/2 = 9 تقسیم می‌کند، که حاصل آن 1/9 می‌شود \- دقیقاً همان چیزی که نیاز دارید. ماتریس معادل برای هموارسازی 5x5 دارای maxval برابر با 50 بوده و با 26 پر خواهد شد. .PP توجه داشته باشید که با maxval برابر با 18، محدودهٔ مقادیر ممکن 0 تا 18 است. پس از اعمال آفست، این محدوده \-9 تا 9 خواهد بود، و پس از نرمال‌سازی، محدوده به \-1 تا 1 تبدیل می‌شود. .PP فایل کانولوشن معمولاً یک PGM خواهد بود، به طوری که همان کانولوشن برای هر یک از مؤلفه‌های رنگی اعمال شود. با این حال، اگر می‌خواهید از یک PPM استفاده کنید و کانولوشن‌های متفاوتی را برای رنگ‌های مختلف انجام دهید، قطعاً می‌توانید این کار را انجام دهید. .UN otherconvol .SS "اشکال دیگر کانولوشن (Other Forms of Convolution)" .PP ابزار \fBpnmconvol\fP تنها کانولوشن حسابی و ترکیب خطی را انجام می‌دهد. اشکال دیگری از کانولوشن وجود دارند که به ویژه در پردازش تصویر کاربرد دارند. .PP دستور \fBpgmmedian\fP فیلتر میانه (median filtering) را انجام می‌دهد، که شکلی از کانولوشن است که در آن مقدار پیکسل خروجی، به جای اینکه ترکیب خطی پیکسل‌های موجود در پنجره باشد، میانهٔ زیرمجموعهٔ خاصی از آن‌ها است. .PP دستور \fBpgmmorphconv\fP عملیات گشادسازی (dilation) و فرسایش (erosion) را انجام می‌دهد، که مشابه فیلتر میانه است اما مقدار خروجی حداقل یا حداکثر مقادیر موجود در پنجره خواهد بود. .UN options.SH "گزینه‌ها (OPTIONS)" .PP علاوه بر گزینه‌های مشترک در تمامی برنامه‌های مبتنی بر libnetpbm (به‌ویژه \fB-quiet\fP، به .UR index.html#commonoptions گزینه‌های معمول (Common Options) .UE \& مراجعه کنید)، \fBpnmconvol\fP گزینه‌های خط فرمان زیر را می‌شناسد: .TP \fB-matrix=\fP\fIconvolution_matrix\fP مقدار ماتریس کانولوشن. به .UR #matrixopt ماتریس کانولوشن .UE \& مراجعه کنید. .sp نمی‌توانید هر دوی این گزینه و \fB-matrixfile\fP را هم‌زمان مشخص کنید. .sp این گزینه در Netpbm 10.49 (دسامبر ۲۰۰۹) اضافه شد. پیش از آن، برای ماتریس کانولوشن از یک فایل PNM استفاده می‌شد. .TP \fB-matrixfile=\fP\fIfilename\fP این گزینه مشخص می‌کند که ماتریس کانولوشن را در یک فایل ارائه می‌دهید و نام آن فایل را مشخص می‌سازد. به .UR #matrixfile ماتریس کانولوشن .UE \& مراجعه کنید. .sp نمی‌توانید هر دوی این گزینه و \fB-matrix\fP را هم‌زمان مشخص کنید. .sp این گزینه در Netpbm 10.49 (دسامبر ۲۰۰۹) اضافه شد. پیش از آن، برای ماتریس کانولوشن از یک فایل PNM استفاده می‌شد. .TP \fB-normalize\fP این گزینه وزن‌های موجود در ماتریس کانولوشن را به‌گونه‌ای تنظیم می‌کند که مجموع همهٔ آن‌ها برابر با یک شود. معمولاً تمایل بر این است که مجموع آن‌ها برابر با یک باشد تا نتیجهٔ کانولوشن روشنایی کلی مشابهی با تصویر ورودی داشته باشد. با \fB-normalize\fP، \fBpnmconvol\fP تمام وزن‌ها را با ضریبی یکسان مقیاس‌بندی می‌کند تا مجموع آن‌ها برابر با یک گردد. این کار را برای هر صفحه رنگی انجام می‌دهد. .sp این قابلیت بسیار سودمند است زیرا می‌توانید اعدادی را درون ماتریس وارد کنید که صرفاً رابطهٔ نسبی درستی با یکدیگر دارند و انجام عمل نرمال‌سازی آن‌ها را به \fBpnmconvol\fP بسپارید. همچنین می‌توانید با افزایش یا کاهش برخی وزن‌ها ماتریس را تنظیم کنید، بدون اینکه نیاز باشد برای حفظ نرمال بودن همهٔ وزن‌های دیگر را تغییر دهید. علاوه بر این، می‌توانید به راحتی از اعداد صحیح استفاده کنید. .sp مثال: .nf \f(CW $ pnmconvol myimage.ppm -normalize -matrix=1,1,1;1,1,1;1,1,1 \fP .fi .sp این دستور مسلماً یک میانگین‌گیر پایهٔ 3x3 است، بدون اینکه نیاز باشد برای هر وزن مقدار 1/9 (.1111111) را تعیین کنید. .sp این گزینه در Netpbm 10.50 (مارس ۲۰۱۰) اضافه شد. اما پیش از Netpbm 10.79 (ژوئن ۲۰۱۷)، زمانی که ماتریس کانولوشن را از طریق فایل pseudo-PNM تعیین می‌کردید هیچ اثری نداشت. .TP \fB-bias=\fP\fIn\fP .sp مقداری را مشخص می‌کند که به مقدار کانولوشن هر نمونه (sample) اضافه می‌شود. .sp هدف از این افزایش، معمولاً مدیریت نتایج منفی کانولوشن است. از آنجا که ماتریس کانولوشن می‌تواند شامل اعداد منفی باشد، مقدار کانولوشن برای یک پیکسل ممکن است منفی شود. اما قالب‌های Netpbm نمی‌توانند شامل مقادیر نمونهٔ منفی باشند، بنابراین بدون هیچ بایاسی (bias)، این نمونه‌ها روی صفر برش می‌خورند (clipped). بایاس به تصویر خروجی اجازه می‌دهد اطلاعات را حفظ کند، و برنامه‌ای که خروجی را پردازش می‌کند با آگاهی از مقدار بایاس می‌تواند مقادیر واقعی کانولوشن را بازسازی نماید. .sp برای مثال، با \fBbias=100\fP، نمونه‌ای که مقدار کانولوشن آن \-5 باشد در خروجی به‌صورت 95 ظاهر می‌شود، در حالی که نمونه‌ای با مقدار کانولوشن 5 در خروجی به‌صورت 105 نمایش می‌یابد. .sp مقدار معمول برای بایاس، نصف مقدار maxval است که بازهٔ برابری را در هر دو سمت صفر فراهم می‌کند. .sp اگر مقدار نمونه پس از اعمال بایاس همچنان کمتر از صفر باشد، \fBpnmconvol\fP آن را روی صفر برش می‌دهد (clip). اگر از maxval تصویر خروجی فراتر رود، آن را روی maxval برش می‌دهد. .sp پیش‌فرض صفر است. .sp این گزینه در Netpbm 10.68 (سپتامبر ۲۰۱۴) اضافه شد. .TP \fB-nooffset=\fP این گزینه بخشی از روش منسوخ‌شدهٔ تصویر PNM برای تعیین ماتریس کانولوشن است. به .UR #matrixpnm ماتریس کانولوشن .UE \& مراجعه کنید. .UN history .SH "تاریخچه (HISTORY)" .PP گزینهٔ \fB-nooffset\fP در Netpbm 10.23 (ژوئیه ۲۰۰۴) اضافه شد که تعیین ماتریس کانولوشن را به‌میزان قابل‌توجهی ساده‌تر کرد، اما همچنان دشوار بود. در Netpbm 10.49 (دسامبر ۲۰۰۹)، دشواری‌های تحمیلی ماتریس کانولوشن PNM سرانجام با گزینه‌های \fB-matrix\fP و \fB-matrixfile\fP پایان یافت. در این بین، \fBpnmconvol\fP برای مدتی خراب بود زیرا کتابخانهٔ Netpbm شروع به اعمال این الزام کرد که مقدار یک نمونه نباید از maxval تصویر تجاوز کند. \fBpnmconvol\fP از کتابخانهٔ Netpbm برای خواندن فایل ماتریس کانولوشن PNM استفاده می‌کرد، اما در قالب شبه-PNM که توسط \fBpnmconvol\fP استفاده می‌شود، گاهی نیاز بود که مقدار یک نمونه از maxval بیشتر باشد. .UN seealso.SH "همچنین ببینید (SEE ALSO)" .BR "pnmsmooth" (1)\c \&, .BR "pgmmorphconv" (1)\c \&, .BR "pgmmedian" (1)\c \&, .BR "pnmnlfilt" (1)\c \&, .BR "pgmkernel" (1)\c \&, .BR "pamgauss" (1)\c \&, .BR "pammasksharpen" (1)\c \&, .BR "pnmpad" (1)\c \&, .BR "pamcut" (1)\c \&, .BR "pnm" (1)\c \& .UN authors .SH "نویسندگان (AUTHORS)" حق نشر (C) 1989، 1991 متعلق به Jef Poskanzer. ویرایش‌شده در ۲۶ نوامبر ۱۹۹۴ توسط Mike Burns، \fIburns@chem.psu.edu\fP .SH "منبع سند (DOCUMENT SOURCE)" این صفحه راهنما توسط ابزار Netpbm با نام \(aqmakeman\(aq از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد: .IP .B http://netpbm.sourceforge.net/doc/pnmconvol.html .PP