Pamshuffle User Manual(0) Pamshuffle User Manual(0)

Updated:

pamshuffle - درهم‌ریختن تصادفی پیکسل‌های یک تصویر Netpbm

pamshuffle [-column [-randomseed integer]] [pamfile]

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

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

دستور pamshuffle یک تصویر Netpbm را به عنوان ورودی خوانده و یک فایل خروجی تولید می‌کند که در آن پیکسل‌ها درهم‌ریخته (بُر خورده) شده‌اند. این عملیات تنها مکان پیکسل‌های موجود را تغییر می‌دهد؛ هیچ چیزی حذف یا اضافه نمی‌شود.

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

برای بُر زدن به صورت عمودی یا انجام یک درهم‌ریزی کامل، از pamshuffle همراه با pamflip استفاده کنید. مثال‌های زیر را ببینید.

اگر فایل ورودی pamfile را مشخص نکنید، ورودی از ورودی استاندارد (Standard Input) خوانده می‌شود.

خروجی به خروجی استاندارد (Standard Output) ارسال می‌شود.

دستور pamshuffle روی جریان‌های چندتصویری کار می‌کند. این برنامه بر روی هر تصویر موجود در جریان به طور مستقل عمل کرده و یک جریان چندتصویری در خروجی تولید می‌نماید.

الگوریتم درهم‌ریختن، روش معروف فیشر-یتس (Fisher-Yates) است.

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

ستون‌های عمودی را بُر می‌زند، یعنی جابه‌جایی یکسانی را روی تمام سطرها انجام می‌دهد. بدون این گزینه، برنامه هر سطر را به صورت مستقل بُر می‌زند.
این مقدار، بذر (seed) برای مولد اعداد تصادفی است که پیکسل‌ها را تولید می‌کند.

از این گزینه برای اطمینان از دریافت تصویری یکسان در اجراهای جداگانه استفاده کنید.

به‌طور پیش‌فرض، pamshuffle از بذری استفاده می‌کند که از زمان روز و شناسه فرایند (process ID) گرفته شده است، که این امر در فراخوانی‌های متعدد نتایجی کاملاً مستقل و نامرتبط به شما می‌دهد.

در مثال‌های زیر، خروجی به خروجی استاندارد ارسال می‌شود. احتمالاً مایل خواهید بود که آن را به مقصدی سودمند بازهدایت (redirect) کنید.

  • دستور pamshuffle زمانی مفید است که بخواهید خروجی منظم تولیدکننده‌های تصویر مانند pamseq و pgmramp را تصادفی‌سازی کنید.

    تولید پنج جایگشت از اعداد صحیح ۰ تا ۱۵:

    
    pgmramp -lr -maxval=15 16 5 | pamshuffle -plain
    
  • بُر زدن ستون‌ها:
    
    pamshuffle -column image.ppm
    
  • بُر زدن سطرها:
    
    pamflip -cw image.ppm | pamshuffle | pamflip -ccw
    
  • انجام درهم‌ریزی کامل (سطرها و ستون‌ها):
    
    pamflip -cw image.ppm | pamshuffle | pamflip -ccw | pamshuffle
    

pamseq(1), pgmramp(1), pamflip(1), ppmshift(1), ppmspread(1), pam(1)

دستور pamshuffle در Netpbm نسخهٔ 10.99 (ژوئن ۲۰۲۲) معرفی شد.

نوشته‌شده توسط Akira F. Urushibata. توسط نویسنده به مالکیت عمومی (Public Domain) واگذار شده است.

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

http://netpbm.sourceforge.net/doc/pamshuffle.html
netpbm documentation