Ppmchange User Manual(0) Ppmchange User Manual(0)

ppmchange - تغییر تمام پیکسل‌های یک رنگ به رنگی دیگر در یک تصویر PPM

ppmchange

[-closeness=closeness_percent] [-remainder=remainder_color] [-closeok] [oldcolor newcolor] ... [ppmfile]

ppmchange red blue redimage.ppm >blueimage.ppm
ppmchange red red -remainder=black myimage.ppm >redblack.ppm
ppmchange -closeness=10 white white black black

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

دستور ppmchange یک تصویر PPM را به عنوان ورودی می‌خواند و تمام پیکسل‌های به رنگ oldcolor را به رنگ newcolor تغییر می‌دهد.

شما می‌توانید تا ۲۵۶ جفت oldcolor/newcolor را در خط فرمان مشخص کنید. ppmchange تمام رنگ‌هایی را که ذکر نشده‌اند بدون تغییر باقی می‌گذارد، مگر اینکه گزینهٔ -remainder را تعیین کنید که در این صورت همهٔ آن‌ها به همان تک‌رنگِ مشخص‌شده تغییر می‌یابند.

شما می‌توانید با تعیین یک ضریب «نزدیکی» (closeness)، مشخص کنید که رنگ‌های مشابه (اما نه لزوماً یکسان) با رنگ‌های تعیین‌شده نیز جایگزین شوند.

رنگ‌ها را همان‌گونه که برای آرگومان روتین کتابخانه‌ای pnm_parsecolor() شرح داده شده است مشخص کنید.

اگر یک پیکسل با دو oldcolor متفاوت مطابقت داشته باشد، ppmchange آن را با newcolor مربوط به موردی که در سمت چپ‌تر قرار دارد جایگزین می‌کند.

مقدار maxval در تصویر خروجی همانند تصویر ورودی است. اگر یک newcolor تعیین‌شده نتواند دقیقاً در آن maxval بازنمایی شود، ppmchange رنگی را در نظر می‌گیرد که تا جای ممکن به آنچه مشخص کرده‌اید نزدیک باشد اما در آن maxval قابل نمایش باشد. مگر اینکه گزینهٔ -closeok را مشخص کنید، در غیر این صورت ppmchange هشداری مبنی بر استفاده از تقریب صادر می‌کند.

یک حالت معمول که ممکن است با این مشکل maxval مواجه شوید (جایی که رنگ مشخص‌شده قابل نمایش با maxval شما نیست)، زمانی است که ورودی شما یک تصویر PBM (سیاه و سفید) باشد که قصد رنگ‌آمیزی آن را دارید. مقدار maxval در این حالت ۱ است که شدیداً رنگ‌هایی را که می‌توانید به آن‌ها تغییر دهید محدود می‌کند. برای رفع این مشکل، از pamdepth استفاده کنید تا maxval ورودی خود را به مقداری سازگار با رنگ‌هایتان تبدیل کنید. مقدار ۲۵۵ معمولاً یک انتخاب مناسب است.

پیش از Netpbm 10.22 (آوریل ۲۰۰۴)، ppmchange همواره به‌گونه‌ای رفتار می‌کرد که گویی کاربر -closeok را مشخص کرده است، و گزینه‌ای به نام -closeok وجود نداشت.

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

مقدار closeness یک درصد است که نشان می‌دهد یک پیکسل تا چه اندازه باید به رنگ مشخص‌شده نزدیک باشد تا جایگزین شود. به‌طور پیش‌فرض، مقدار آن ۰ است؛ به این معنی که پیکسل باید دقیقاً همان رنگ مشخص‌شده باشد.

یک پیکسل زمانی جایگزین می‌شود که فاصلهٔ رنگی بین آن و رنگ مشخص‌شده، کمتر یا مساوی با closeness درصد از maxval باشد.

«فاصله» در رنگ به عنوان مجموع دکارتی تفاوت‌های منفرد در شدت‌های قرمز، سبز و آبی بین دو پیکسل تعریف می‌شود که به‌گونه‌ای نرمال‌سازی شده است که تفاوت بین سیاه و سفید ۱۰۰٪ باشد.

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

شاید روزی ppmchange برای انجام تحلیل فام ارتقا یابد.

این گزینه در Netpbm 9.8 (سپتامبر ۲۰۰۰) اضافه شد.

این گزینه بر نحوهٔ تفسیر رنگی که در آرگومان‌ها مشخص می‌کنید توسط ppmchange تأثیر می‌گذارد. هنگامی که این گزینه را مشخص کنید، ppmchange ممکن است از رنگی نزدیک به رنگ مشخص‌شده (اما نه دقیقاً همان) استفاده کند. برای جزئیات به بخش توضیحات مراجعه کنید.

این گزینه در Netpbm 10.22 (آوریل ۲۰۰۴) اضافه شد. پیش از آن، ppmchange همواره به‌گونه‌ای رفتار می‌کرد که گویی این گزینه مشخص شده است.

برنامهٔ ppmchange تمام پیکسل‌هایی را که رنگ آن‌ها برابر با رنگی نیست که برای آن یک رنگ جایگزین صریح در خط فرمان تعیین کرده‌اید، به رنگ color تغییر می‌دهد.

یک کاربرد نمونه از این گزینه:

ppmchange -remainder=black red red

برای استخراج تنها بخش‌های قرمز از یک تصویر است، یا

ppmchange -remainder=black red white | ppmtopgm

برای ایجاد یک فایل ماسک (mask) برای بخش‌های قرمز تصویر.

pgmtoppm(1)، ppmcolormask(1)، ppm(1)

Wilson H. Bent. Jr. (whb@usc.edu) با اعمال تغییرات توسط Alberto Accomazzi (alberto@cfa.harvard.edu)

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

http://netpbm.sourceforge.net/doc/ppmchange.html
December 2016 netpbm documentation