Pamaltsat User Manual(0) Pamaltsat User Manual(0)

pamaltsat - افزایش یا کاهش اشباع رنگ یک تصویر با استفاده از یکی از چندین روش جایگزین

pamaltsat [-method name] [-strength number] [-linear] [infile]

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

دستور pamaltsat اشباع رنگ (saturation) یک تصویر Netpbm را با استفاده از یکی از روش‌های گوناگون غیر استاندارد (جایگزین یا alternative) کاهش یا افزایش می‌دهد.

ورودی یک تصویر Netpbm از ورودی استاندارد (Standard Input) یا فایلی است که نام آن در آرگومان‌ها مشخص شده است. خروجی نیز یک تصویر Netpbm با همان قالب است که در خروجی استاندارد (Standard Output) نوشته می‌شود.

مرسوم‌ترین روش برای تغییر اشباع رنگ یک تصویر، روشی است که pambrighten انجام می‌دهد.

برای افزایش اشباع رنگ با ضریب ۲٫۱ با استفاده از روش لگاریتمی:


     pamaltsat -method log -strength 2.1 test.ppm

برای تبدیل یک تصویر رنگی به مقیاس خاکستری (grayscale):


    pamaltsat -strength 0 test.ppm

روش‌های اشباع رنگ زیر در دسترس هستند.

این مدل اشباع رنگ از مفهوم تمامیت رنگ (color integrity)(1) الهام گرفته شده است، که با رنگ بر اساس نسبت‌های شدت کار می‌کند، جایی که شدت مقداری از تابع درخشندگی (luminosity function) است، نه روشنایی یا مقدار عددی نمونه در فایل تصویر. از این دیدگاه، طبیعی است که اشباع رنگ به عنوان نسبت بیشینه و کمینه شدت مؤلفه‌های اصلی آن تعریف شود. با این حال، به منظور تبدیل اشباع رنگ به یک مقدار جمع‌پذیر و بخشیدن معنای ضریب به پارامتر -strength، مناسب است که روی لگاریتم این نسبت عمل شود. جمع چنین اشباع‌هایی معنای فیزیکی پیدا می‌کند و ضرب معادل با به توان رساندن شدت به توان ضریب خواهد بود.

با این روش، pamaltsat شدت هر مؤلفه را به توان مقدار strength می‌رساند. از آنجا که شدت کل رنگ حاصل با رنگ اصلی متفاوت خواهد بود، لازم است با ضرب کردن شدت مؤلفه‌های رنگ اشباع‌شده در نسبت شدت رنگ اصلی به شدت رنگ اشباع‌شده، شدت بازیابی شود.

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

این روش توسط Anton Shepelev ابداع شده است.

این روش پیش‌فرض است. این روش با رنگ به عنوان یک طیف با سه باند رفتار می‌کند: یکی برای شدت هر مؤلفه اصلی. از آنجا که خاکستری خنثی دارای طیف یکنواخت (ثابت) است، اشباع رنگ را می‌توان به عنوان تفاوت طیف رنگ مورد نظر با طیف یکنواخت با همان شدت کل اندازه‌گیری کرد. روش طیفی از یکی از ساده‌ترین معیارهای چنین تفاوتی استفاده می‌کند: تفاوت بین بیشترین و کمترین شدت مؤلفه‌ها، که مقداری جمع‌پذیر است و بنابراین با معنای فیزیکی مناسب، قابلیت ضرب شدن را دارد. اگرچه یک مدل کامل فام-اشباع (hue-saturation) را می‌توان از این رویکرد به دست آورد، اما نیازی نیست pamaltsat نگران آن باشد، زیرا همواره فام (hue) و شدت کل را حفظ می‌کند.

به منظور تغییر اشباع رنگ، pamaltsat ابتدا شدت هر مؤلفه را در قدرت مورد نظر ضرب می‌کند. اشباع نتیجه برابر است با حاصل‌ضرب قدرت در اشباع اولیه، و به همین ترتیب شدت کل نیز، اما سپس با تفریق خاکستری خنثی با شدت مناسب، بازیابی می‌شود.

اثر این روش بر شدت هر مؤلفه را می‌توان در معادله زیر بیان کرد:

<span style="font-family: monospace">
    sat = orig * strength - Iorig * (strength - 1)
</span>
که در آن <span style="font-family: monospace">sat</span> نمونه اشباع‌شده، <span style="font-family: monospace">orig</span> نمونه اصلی، و <span style="font-family: monospace">Iorig</span> شدت کل رنگ اصلی است.

این روش همچنین به مفهوم تمامیت رنگ (color integrity) مرتبط است زیرا هر دو عملیات آن بخشی از آن مفهوم هستند: ضرب شدت مؤلفه‌ها در یک ضریب یکسان عملیات مهمی است زیرا روشنایی را تغییر می‌دهد اما تعادل رنگ را حفظ می‌کند، و تفریق یک مقدار ثابت از تمام شدت‌های مؤلفه‌ها توسط ابداع‌کننده تمامیت رنگ به عنوان «تفریق سفید» توصیف شده است.

این روند ممکن است شدت‌های مؤلفه‌ای منفی یا بزرگ‌تر از یک تولید کند. برای چنین نمونه‌هایی، pamaltsat قدرت را به بیشترین مقداری کاهش می‌دهد که رنگ حاصل را در محدوده مجاز نگه دارد.

این روش توسط Anton Shepelev ابداع شده است.

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

روش اشباع مورد استفاده را مشخص می‌کند:

پیش‌فرض spectrum است.

یک ضریب حقیقی غیرمنفی را مشخص می‌کند که اشباع با آن تغییر یابد. مقداری بزرگ‌تر از یک اشباع را افزایش می‌دهد، در حالی که مقداری کمتر از یک آن را کاهش خواهد داد. مقدار یک تصویر را بدون تغییر رها می‌کند، و مقدار صفر خروجی در مقیاس خاکستری طبق استاندارد Rec 709 تولید خواهد کرد.

دستور pamaltsat شدت کل هر پیکسل را حفظ می‌کند و هرگز روی پیکسل‌های خاکستری خنثی تأثیری نمی‌گذارد.

این گزینه الزامی است.

به pamaltsat اعلام می‌کند که ورودی نوع خطی-شدت (intensity-linear) از قالب تصویر Netpbm است، که در آن نمونه‌ها به جای روشنایی، متناسب با شدت نور هستند، همان‌طور که در قالب‌های تصویر Netpbm با گامای تنظیم‌شده یا واقعی وجود دارد.

از آنجا که pamaltsat روی رنگ‌های خنثی تأثیری نمی‌گذارد، باید پیش از اشباع، تعادل رنگ را تنظیم کنید. می‌توانید این کار را با pamlevels انجام دهید.

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

pambrighten(1)، ppmflash(1)،

این برنامه نخستین بار توسط Anton Shepelev (anton.txt@gmail.com) ارائه شد.

دستور pamaltsat در Netpbm 10.84 (سپتامبر ۲۰۱۸) معرفی شد.

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

http://netpbm.sourceforge.net/doc/pamaltsat.html
14 September 2018 netpbm documentation