| Pamlookup User Manual(0) | Pamlookup User Manual(0) |
نام (NAME)
pamlookup - نگاشت یک تصویر به تصویری جدید با استفاده از آن به عنوان نمایه در یک جدول جستجو
خلاصه دستور (SYNOPSIS)
pamlookup -lookupfile=lookupfile [-byplane] -missingcolor=color [-fit] indexfile
تمام گزینهها را میتوان به کوتاهترین پیشوند یکتای آنها خلاصه کرد. میتوانید به جای یک خط تیره از دو خط تیره استفاده کنید. همچنین میتوانید نام یک گزینه و مقدار آن را به جای علامت مساوی با یک نویسه فاصله (white space) جدا نمایید.
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
برنامهٔ pamlookup یک آرایهٔ دو بعدی از نمایهها (اندیسها) و یک جدول جستجو (lookup table) را به عنوان ورودی دریافت میکند. برای هر موقعیت مکانی در آرایهٔ نمایه، مقدار نمایه را در جدول جستجو مییابد و نتیجهٔ جستجو را در تصویر خروجی قرار میدهد.
دو روش برای نمایهگذاری جدول جستجو وجود دارد: چندتایی کامل (whole tuple) و بر پایهٔ صفحه (by plane). گزینهٔ -byplane تعیین میکند که pamlookup از کدام روش استفاده کند.
در سادهترین شکل نمایهگذاری چندتایی کامل، هر نمایه در آرایهٔ نمایه یک عدد صحیح نامنفی (حسابی) منفرد است و جدول جستجو یک چندتایی کامل را به هر نمایهٔ عددی ممکن مرتبط میسازد. بنابراین برای مثال، آرایهٔ نمایه ممکن است در سطر ۲، ستون ۹ دارای مقدار ۲۳ باشد. جدول جستجو ممکن است چندتایی (1,2,3) را به مقدار ۲۳ اختصاص دهد. در این صورت، تصویر خروجی در سطر ۲، ستون ۹ شامل چندتایی (1,2,3) خواهد بود.
در شکل پیچیدهتری از نمایهگذاری چندتایی کامل، هر نمایه در آرایهٔ نمایه یک جفتمرتب از اعداد صحیح نامنفی است و جدول جستجو یک چندتایی کامل را به هر نمایهٔ جفتمرتب ممکن مرتبط میسازد. با تغییر مثال بالا، مقدار نمایه به جای ۲۳ میتواند (23, 5) باشد.
با نمایهگذاری چندتایی کامل، تصویر خروجی دارای عرض و ارتفاع یکسانی با تصویر نمایه خواهد بود، و عمق، نوع و مقدار بیشینه (maxval) چندتایی توسط جدول جستجو تعیین میشود.
با نمایهگذاری چندتایی کامل، اگر تصویر نمایه دارای عمق ۱ باشد، مقادیر نمونههای آن نمایههای تکعددی صحیح هستند. اگر تصویر نمایه دارای عمق بیش از ۱ باشد، چندتاییهای آن نمایههای جفتمرتب هستند که از نمونههای اول و دوم درون چندتایی تشکیل شدهاند.
در نمایهگذاری بر پایهٔ صفحه، تصویر نمایه حاوی نمایههای عددی صحیح است. هر نمونه در تصویر نمایه یک نمایه به شمار میرود. جدول جستجو هر نمایهٔ عددی صحیح را به یک عدد صحیح دیگر نگاشت میکند. pamlookup مقدار نمونه را در هر سطر، ستون و صفحه از تصویر نمایه، در جدول جستجو پیدا کرده و از عدد حاصل به عنوان مقدار نمونه برای همان سطر، ستون و صفحه در خروجی استفاده میکند.
با نمایهگذاری بر پایهٔ صفحه، خروجی دارای همان ابعاد تصویر نمایه و همان maxval تصویر جستجو خواهد بود.
تصویر جدول جستجو (The Lookup Table Image)
جدول جستجو یک تصویر PAM یا PNM است. اگر تصویر نمایه حاوی نمایههای تکعددی صحیح باشد، تصویر جستجو یک تکسطر است و نمایه شمارهٔ ستون آن خواهد بود. نتیجهٔ جستجو، مقدار چندتایی یا پیکسلی است که در ستون مشخصشده از همان یک سطر جدول جستجو قرار دارد. اگر تصویر نمایه حاوی نمایههای جفتمرتب باشد، نخستین عنصر جفتمرتب شمارهٔ سطر و دومین عنصر جفتمرتب شمارهٔ ستون است. نتیجهٔ جستجو، مقدار چندتایی یا پیکسلی در سطر و ستون مشخصشده از جدول جستجو است.
عرض تصویر جستجو معمولاً باید برابر با مقدار بیشینه (maxval) تصویر نمایه به علاوهٔ یک باشد، تا هر مقدار نمونهٔ نمایهای ممکن، با یک مدخل در جدول جستجو متناظر شود. دو روش وجود دارد که pamlookup با تصویر جستجویی که چنین عرضی ندارد برخورد میکند:
- مقیاسبندی تصویر جستجو به عرض مورد نیاز. برنامهٔ pamlookup در نمایهگذاری بر پایهٔ صفحه همواره این کار را انجام میدهد، و در نمایهگذاری چندتایی کامل، زمانی که گزینهٔ -fit را مشخص کنید این کار را انجام خواهد داد.
- استفاده از
یک مقدار
پیشفرض
برای
نمایههایی
که از عرض
تصویر
جستجو
فراتر
میروند، و
نادیده
گرفتن
ستونهای
تصویر
جستجو که
فراتر از maxval
تصویر
نمایه
هستند.
برنامهٔ pamlookup
در
نمایهگذاری
چندتایی
کامل زمانی
که -fit را
تعیین
نکنید، این
کار را
انجام
میدهد.
مقدار پیشفرض را با گزینهٔ -missingcolor مشخص میکنید؛ مقدار پیشفرض آن، مقدار برگرفته از گوشهٔ بالا-چپ تصویر جستجو است.
در نمایههای جفتمرتب (که نمایهگذاری چندتایی کامل را ایجاب میکند)، همان قاعده که برای عرض اعمال شد برای ارتفاع تصویر نمایه نیز صدق میکند.
گزینهٔ اجباری -lookupfile فایلی را مشخص میکند که حاوی تصویر جدول جستجو است. علامت - به معنای ورودی استاندارد است. اگر هر دو فایل تصویر نمایه و جدول جستجو ورودی استاندارد باشند، برنامه کار نخواهد کرد.
میتوانید از ppmmake و pamcat برای ساخت فایل جدول جستجو استفاده کنید.
مثال - نمایهگذاری چندتایی کامل (Example - Whole Tuple Indexing)
در اینجا مثالی از عملکرد pamlookup در نمایهگذاری چندتایی کامل (عدم تعیین -byplane) آورده شده است.
یک تصویر نمایه شامل یک PAM با ابعاد 3x2x1 را به صورت زیر در نظر بگیرید:
| 0 | 1 | 0 |
| 2 | 2 | 2 |
و یک جدول جستجو متشکل از یک تصویر PPM با ابعاد 3x1 به صورت زیر:
| red | yellow | beige |
جدول جستجوی بالا نشان میدهد که نمایهٔ 0 متناظر با رنگ قرمز (red)، نمایهٔ 1 متناظر با زرد (yellow)، و نمایهٔ 2 متناظر با بژ (beige) است. خروجی pamlookup تصویر PPM زیر خواهد بود:
| red | yellow | red |
| beige | beige | beige |
اکنون به مثالی از حالت پیچیدهتر نگاهی بیندازیم که در آن نمایهها به جای اعداد صحیح منفرد، جفتمرتبهایی از اعداد صحیح هستند. تصویر نمایهٔ ما این تصویر PAM با ابعاد 3x2x2 خواهد بود:
| (0,0) | (0,1) | (0,0) |
| (1,1) | (1,0) | (0,0) |
جدول جستجوی ما برای این مثال این تصویر PPM دو بعدی خواهد بود:
| red | yellow | red |
| black | green | red |
مثال - نمایهگذاری بر پایهٔ صفحه (Example - By Plane Indexing)
در اینجا مثالی از عملکرد pamlookup با نمایهگذاری چندتایی بر پایهٔ صفحه (با تعیین -byplane) آورده شده است.
یک تصویر نمایه شامل یک PAM با ابعاد 3x2x3 را به صورت زیر در نظر بگیرید:
| (0,0,0) | (1,0,0) | (2,0,0) |
| (2,2,0) | (2,0,2) | (2,0,0) |
و یک جدول جستجو متشکل از یک تصویر PAM با ابعاد 3x1x1 و مقدار maxval برابر با 7 به صورت زیر:
| 3 | 4 | 7 |
جدول جستجوی بالا بیان میکند که نمایهٔ 0 متناظر با مقدار نمونهٔ 3، نمایهٔ 1 متناظر با 4، و نمایهٔ 2 متناظر با 7 است. خروجی pamlookup تصویر PAM با ابعاد 3x2x3 زیر خواهد بود:
| (3,3,3) | (4,3,3) | (7,3,3) |
| (7,7,3) | (7,3,7) | (7,3,3) |
متفرقه (Miscellaneous)
آرگومان indexfile فایلی را مشخص میکند که حاوی تصویر نمایهٔ PAM یا PNM است. علامت - به معنای ورودی استاندارد است. اگر هم فایل تصویر نمایه و هم فایل جدول جستجو ورودی استاندارد باشند، برنامه کار نخواهد کرد.
تصویر خروجی به خروجی استاندارد فرستاده میشود.
اگر میخواهید از دو تصویر تکصفحهای مجزا به عنوان نمایه استفاده کنید (به گونهای که خروجی شما ترکیب هر دو ورودی را بازتاب دهد)، از pamstack برای ترکیب آن دو در یک تصویر دوصفحهای استفاده نمایید (و از یک تصویر جدول جستجوی دوبعدی بهره ببرید).
گزینهها (OPTIONS)
علاوه بر گزینههای مشترک بین تمام برنامههای مبتنی بر libnetpbm (بهویژه -quiet، به گزینههای عمومی (Common Options) مراجعه کنید)، pamlookup گزینههای خط فرمان زیر را میشناسد:
- -lookupfile=lookupfile
- lookupfile نام فایلی را تعیین میکند که تصویر PAM یا PNM جدول جستجو در آن قرار دارد. تعیین این گزینه اجباری است.
- -byplane
- این گزینه
نمایهگذاری
بر پایهٔ
صفحه را
انتخاب
میکند.
حالت
پیشفرض،
نمایهگذاری
چندتایی
کامل است.
این گزینه در Netpbm نسخهٔ 10.72 (سپتامبر 2015) جدید بود. پیش از آن، نمایهگذاری بر پایهٔ صفحه وجود نداشت.
- -missingcolor=color
- این گزینه
تنها زمانی
معنادار
است که
تصویر
جستجو (و در
نتیجه
خروجی) یک
تصویر PNM
باشد. color
رنگی را
تعیین
میکند که
هر جا
نمایهٔ
ورودی در
جدول جستجو
وجود
نداشته
باشد، در
خروجی قرار
میگیرد
(وجود
نداشتن
یعنی نمایه
از ابعاد
تصویر
جستجو
فراتر رود --
مثلاً
نمایه ۱۰۰
باشد اما
تصویر
جستجو یک PPM
با ابعاد 50 x 1
باشد).
اگر این گزینه یا -fit را مشخص نکنید، pamlookup هر زمان که نمایه از ابعاد تصویر جستجو فراتر رود، از مقدار گوشهٔ بالا-چپ تصویر جستجو استفاده میکند.
رنگ (color) را همانطور که برای آرگومان زیرروال کتابخانهای pnm_parsecolor() شرح داده شده است مشخص کنید.
روش دیگر برای برخورد با تصویر جستجوی بسیار کوچک، استفاده از گزینهٔ -fit است.
این گزینه در صورتی که -fit یا -byplane را نیز تعیین کنید هیچ اثری نخواهد داشت.
- -fit
- این گزینه
بیان
میکند که
تصویر
جستجو بر
اساس مقدار
maxval تصویر
نمایه، در
صورت لزوم
کوچک یا
بزرگ شود تا
با
نمایههای
موجود در
تصویر
نمایه
مطابقت
یابد. برای
مثال، اگر
تصویر
نمایهٔ شما
یک تکصفحه
و maxval برابر با
۲۵۵ داشته
باشد و
تصویر
جستجوی شما
یک سطر از
۱۰ ستون
باشد، pamlookup
پیش از
انجام
جستجوها
تصویر
جستجوی شما
را تا ۲۵۵
ستون
میکشد.
برنامهٔ pamlookup
کشیدن (یا
فشردهسازی)
را با
برنامهٔ
pamscale(1) انجام
میدهد.
هنگامی که از -fit استفاده میکنید، pamlookup هرگز به دلیل ابعاد نامعتبر تصویر جستجو با شکست مواجه نشده و هشداری صادر نمیکند، و گزینهٔ -missingcolor هیچ اثری ندارد.
گزینهٔ -fit زمانی که -byplane را مشخص کنید اثری ندارد. pamlookup در زمان نمایهگذاری بر پایهٔ صفحه، همواره رفتاری مشابه رفتار درخواستشده با -fit را خواهد داشت.
مثالها (EXAMPLES)
مثال: نقشهٔ بارش باران (Example: rainfall map)
فرض کنید مجموعهای از دادههای بارندگی در یک تصویر PAM تکصفحهای دارید. سطرها و ستونهای تصویر PAM بیانگر عرض و طول جغرافیایی هستند. مقادیر نمونهها میزان بارندگی سالانه به سانتیمتر (کامل) هستند. بالاترین مقدار بارندگی در تصویر ۱۹۹ سانتیمتر است. تصویر در فایل rainfall.pam قرار دارد.
شما میخواهید یک نقشهٔ بارش PPM با رنگ سبز برای پربارانترین مکانها، قرمز برای خشکترین نقاط و رنگهای دیگر در این بین تولید کنید.
ابتدا یک تصویر جدول جستجو بسازید، احتمالاً با یک ویرایشگر گرافیکی و با بزرگنمایی بسیار زیاد تصویر تا بتوانید روی تکتک پیکسلها کار کنید. تصویر باید یک تکسطر و ۲۰۰ ستون داشته باشد. چپترین پیکسل را قرمز و راستترین را سبز کنید و رنگهای مناسب را برای فواصل میان آنها برگزینید. نام آن را colorkey.ppm بگذارید.
pamlookup rainfall.pam -lookupfile=colorkey.ppm >rainfallmap.ppm
حالا فرض کنید حوصله ندارید ۲۰۰ مقدار رنگ را وارد کنید و برای کسی هم اهمیت چندانی ندارد مکانهایی که بیش از ۹۹ سانتیمتر بارندگی سالانه دارند مشخص شوند. در این حالت، کافی است عرض colorkey.ppm را ۱۰۰ ستون در نظر بگیرید و این دستور را اجرا کنید:
pamlookup rainfall.ppm -lookupfile=colorkey.ppm -missingcolor=black \ >rainfallmap.ppm
اکنون اگر مناطقی وجود داشته باشند که بیش از ۱۰۰ سانتیمتر بارندگی دارند، در خروجی صرفاً به رنگ سیاه نمایش داده خواهند شد.
مثال: مقایسه تصویری (Example: graphical diff)
فرض کنید میخواهید دو تصویر PBM (سیاه و سفید) را به صورت دیداری مقایسه کنید. هر تصویر شامل پیکسلهای پیشزمینهٔ سیاه روی پسزمینهٔ سفید است. شما میخواهید تصویری بسازید که در نقاطی که هر دو تصویر دارای پسزمینه هستند، پسزمینه داشته باشد و در نقاطی که هر دو دارای پیشزمینه هستند، پیشزمینه داشته باشد. اما در جایی که تصویر شماره ۱ دارای پیکسل پیشزمینه است و تصویر شماره ۲ نیست، در خروجی رنگ قرمز میخواهید؛ و در جایی که تصویر شماره ۲ دارای پیکسل پیشزمینه است و تصویر شماره ۱ نیست، رنگ سبز میخواهید.
ابتدا، یک تصویر واحد میسازیم که حاوی اطلاعات هر دو تصویر ورودی PBM باشد:
pamstack image1.pbm image2.pbm >bothimages.pam
توجه داشته باشید که این تصویر در هر مکان دارای یکی از ۴ مقدار چندتایی ممکن است: (0,0)، (0,1)، (1,0) یا (1,1).
اکنون، یک جدول جستجو میسازیم که بتوانیم با آن ۴ مقدار، درون آن جستجو کنیم:
ppmmake white 1 1 >white.ppm ppmmake black 1 1 >black.ppm ppmmake red 1 1 >red.ppm ppmmake green 1 1 >green.ppm pamcat -leftright black.ppm red.ppm >blackred.ppm pamcat -leftright green.ppm white.ppm >greenwhite.ppm pamcat -topbottom blackred.ppm greenwhite.ppm >lookup.ppm
در نهایت، نمایهها را از نمایهٔ خود در جدول جستجو پیدا کرده و خروجی را تولید میکنیم:
pamlookup bothimages.ppm -lookupfile=lookup.ppm >imagediff.ppm
همچنین ببینید (SEE ALSO)
pamunlookup(1)، pnmremap(1)، ppmmake(1)، pamcat(1)، pamstack(1)، pnm(1)، pam(1)
تاریخچه (HISTORY)
برنامهٔ pamlookup در Netpbm نسخهٔ 10.13 (دسامبر 2002) جدید بود.
منبع مستندات (DOCUMENT SOURCE)
این صفحه راهنما توسط ابزار Netpbm تحت عنوان 'makeman' از منبع HTML تولید شده است. مستندات اصلی در آدرس زیر قرار دارد:
| 25 July 2015 | netpbm documentation |