| G'MIC(1) | General Commands Manual | G'MIC(1) |
نام (NAME)
gmic - انجام عملیات پردازش تصویر با استفاده از چارچوب G'MIC.
راهنما (HELP)
gmic: GREYC's Magic for Image Computing:
واسط خط
فرمان
نسخه 4.0.5
(https://gmic.eu)
حق نشر (c) 2008-2026، David
Tschumperlé / GREYC / CNRS.
(https://www.greyc.fr)
۱. نحوه
استفاده
--------------
gmic [command_1 [arg_1_1,arg_1_2,..]] .. [command_N [arg_N_1,arg_N_2,
..]]
«gmic» مفسر
متنباز
زبان G'MIC است؛
یک زبان
اسکریپتنویسی
اختصاصی
برای طراحی
خطلولهها
و عملگرهای
بالقوه
پیچیدهٔ
پردازش
تصویر.
میتوان از
آن برای
تبدیل،
دستکاری،
فیلتر کردن
و مصورسازی
مجموعهدادههای
تصویری
متشکل از یک
یا چند
تصویر
چندطیفی
۱بعدی،
۲بعدی یا
۳بعدی
استفاده
کرد.
این
مستندات
مرجع تمامی
جنبههای
فنی چارچوب
G'MIC را در
نسخهٔ فعلی
آن، یعنی
4.0.5، تشریح
میکند.
برای
آشنایی
سادهتر،
آموزش را
ببینید:
https://gmic.eu/tutorial
۲. بافتار و
مفهوم کلی
----------------------
* در هر لحظه،
G'MIC فهرستی
واحد از
تصاویر
مبتنی بر
پیکسل
شمارهگذاریشده
(و اختیاری
نامگذاریشده)
را مدیریت
میکند که
کاملاً در
حافظهٔ
رایانه
(بهصورت
فشردهنشده)
ذخیره
شدهاند.
* نخستین
تصویر در
فهرست
دارای
نمایهٔ «0»
بوده و با
«[0]» نشان
داده
میشود.
دومین
تصویر در
فهرست با
«[1]»، سومین
با «[2]» و به
همین ترتیب
نشان داده
میشوند.
* نمایههای
منفی
بهصورت
دورهای
اداره
میشوند:
«[-1]» به
آخرین
تصویر در
فهرست، «[-2]»
به تصویر
یکی مانده
به آخر و
غیره اشاره
دارد.
بنابراین،
اگر فهرست ۴
تصویر
داشته
باشد، «[1]» و
«[-3]» هر دو
به تصویر
دوم در
فهرست
اشاره
دارند.
* یک تصویر
نامگذاریشده
را میتوان
با «[name]» نیز
مشخص کرد،
به شرطی که
«name» از
مجموعه
نویسههای
«[a-zA-Z0-9_]»
استفاده
کند و با عدد
شروع نشود.
نام تصاویر
را میتوان
در هر زمانی
از
خطلولهٔ
پردازش
تنظیم یا
مجدداً
تخصیص داد
(برای این
منظور
دستور name را
ببینید).
* چارچوب G'MIC
مجموعهای
از دستورها
و
سازوکارهای
جایگزینی
را برای
طراحی
خطلولهها
و عملگرهای
پیچیده جهت
مدیریت این
فهرست از
تصاویر به
روشی بسیار
منعطف
تعریف
میکند:
میتوانید
تصاویری را
در فهرست
درج یا از آن
حذف کنید،
ترتیب
تصاویر را
بازآرایی
نمایید،
تصاویر را
(بهصورت
تکی یا
گروهی)
پردازش
کنید،
دادههای
تصاویر را
با یکدیگر
ادغام
نمایید،
فایلهای
تصویر را
نمایش داده
یا ذخیره
کنید، و
غیره.
* چنین
خطلولهای
میتواند
یک دستور
سفارشی
جدید G'MIC را
تعریف کند
(که در یک
فایل
دستورهای
کاربر
ذخیره
میشود)، که
سپس
میتواند
بهعنوان
یک دستور
معمولی در
یک
خطلولهٔ
بزرگتر
مجدداً
استفاده
شود.
۳. تعریف
تصویر و
اصطلاحات
----------------------------
* در G'MIC، هر
تصویر
بهصورت یک
آرایهٔ
۱بعدی،
۲بعدی،
۳بعدی یا
۴بعدی از
مقادیر
اسکالر
مدلسازی
میشود که
بهطور
یکنواخت بر
روی یک
دامنهٔ
مستطیلی یا
متوازیالسطوح
گسستهسازی
شده است.
* این چهار
بُعد
عبارتند از:
- «width»،
تعداد
ستونهای
تصویر
(اندازه در
امتداد
«x-axis»).
- «height»،
تعداد
سطرهای
تصویر
(اندازه در
امتداد
«y-axis»).
- «depth»،
تعداد
برشهای
تصویر
(اندازه در
امتداد
«z-axis»). عمق
برای
تصاویر
۲بعدی رنگی
یا خاکستری
معمولی
برابر با
«1» است.
- «spectrum»،
تعداد
کانالهای
تصویر
(اندازه در
امتداد
«c-axis»). طیف
بهترتیب
برای
تصاویر
رنگی
استاندارد
«RGB» و «RGBA»
برابر با
«3» و «4»
است.
* هیچ
محدودیت
سختی برای
اندازهٔ
تصویر در هر
بُعد وجود
ندارد. برای
نمونه،
تعداد
برشها یا
کانالهای
تصویر در
محدودهٔ
حافظهٔ در
دسترس
میتواند
اندازهای
دلخواه
داشته باشد.
* ابعاد
«width»، «height» و
«depth» یک
تصویر
بهعنوان
ابعاد
فضایی (spatial) در
نظر گرفته
میشوند،
در حالی که
«spectrum»
نمایانگر
بُعد طیفی (spectral)
است.
بنابراین،
یک تصویر
۴بعدی در G'MIC
اغلب باید
بهعنوان
یک
مجموعهدادهٔ
۳بعدی از
وکسلهای
چندطیفی در
نظر گرفته
شود. بیشتر
دستورهای G'MIC
از این
قاعده
پیروی
میکنند
(مثلاً
بهطور
پیشفرض،
دستور blur
تصاویر
۴بعدی را
تنها در
امتداد سه
محور فضایی
«xyz» تار
میکند).
* چارچوب G'MIC
تمام
دادههای
تصویر را
بهصورت
بافرهایی
از مقادیر
«float» (۳۲
بیتی،
محدودهٔ
مقادیر
«[-3.4E38,+3.4E38]»)
ذخیره
میکند. این
نرمافزار
تمامی
عملیاتهای
پردازش
تصویر خود
را با اعداد
ممیز شناور
انجام
میدهد. در
نتیجه هر
پیکسل
تصویر به ۳۲
بیت
بهازای هر
کانال نیاز
دارد (مگر
اینکه در
زمان
کامپایل
نرمافزار
بافرهای
دقتمضاعف
فعال شده
باشند، که
در این حالت
۶۴ بیت
بهازای هر
کانال
میتواند
پیشفرض
باشد).
* استفاده از
پیکسلهای
ممیز شناور
تضمین
میکند که
دقت
محاسباتی
در هنگام
اجرای
خطلولههای
پردازش
تصویر حفظ
میشود.
برای
عملیات
ورودی/خروجی
تصویر،
ممکن است
بخواهید یک
نوعدادهٔ
غیر شناور
(مانند
«bool»، «char»،
«int» و غیره)
را مشخص
کنید. این
کار با مشخص
کردن آن
بهعنوان
یک گزینهٔ
فایل در
هنگام
استفاده از
دستورهای
ورودی/خروجی
امکانپذیر
است (برای
اطلاعات
بیشتر
درباره
گزینههای
فایل بخش Input/Output
Properties را
ببینید).
۴.
مولفههای
یک
خطلولهٔ
پردازش
-------------------------------
* در G'MIC، یک
خطلولهٔ
پردازش
تصویر
بهصورت
دنبالهای
از
مولفهها
که با
نویسهٔ
فاصله (space) از
یکدیگر جدا
شدهاند
توصیف
میشود. این
مولفهها
از چپ به
راست تجزیه
و اجرا
میگردند.
برای
نمونه،
عبارت:
filename.jpg blur 3,0 sharpen 10 resize 200%,200% output
file_out.jpg
یک
خطلولهٔ
معتبر
متشکل از ۹
مولفهٔ G'MIC
است.
* هر مولفهٔ G'MIC
یا یک
دستور
است، یا
فهرستی از
آرگومانهای
دستور، یا
یک نام
فایل، یا
یک رشتهٔ
ورودی
ویژه.
* نویسههای
گریز و
گیومههای
دوتایی
«"»
میتوانند
برای تعریف
مولفههای
حاوی فاصله
یا سایر
نویسههای
ویژه
استفاده
شوند. برای
نمونه، دو
رشتهٔ
«single item» و «"single
item"» هر دو یک
مولفهٔ
واحد را که
حاوی یک
فاصله است
تعریف
میکنند.
۵.
دادههای
ورودی
----------------
* اگر یک
مولفهٔ G'MIC یک
نام فایل
موجود
باشد،
دادههای
تصویر
متناظر
بارگیری
شده و در
انتهای
فهرست
تصاویر درج
میشوند (که
معادل
استفاده از
«input filename» است).
* نامهای
فایل خاص
«-» و «-.ext»
بیانگر
جریانهای
ورودی/خروجی
استاندارد
(stdin/stdout) هستند که
میتوان
فرمت فایل
آنها را به
فرمت خاص
«ext» اجبار
کرد (مانند
«-.jpg» یا «-.png»).
* رشتههای
ورودی
ویژهٔ زیر
را میتوان
بهعنوان
مولفههای
G'MIC برای
ایجاد و درج
تصاویر
جدید با
مقادیر
تعیینشده
در انتهای
فهرست
تصاویر
استفاده
کرد:
- «[selection]» یا
«[selection]xN»: درج ۱
یا N رونوشت
از تصاویر
موجود. «selection»
میتواند
نشاندهندهٔ
یک یا چند
تصویر باشد
(برای
اطلاعات
بیشتر
درباره
انتخابها
به بخش Command Items and
Selections مراجعه
کنید).
-
«width[%],_height[%],_depth[%],_spectrum[%],_values[xN]»:
درج یک یا
«N» تصویر
جدید با
اندازه و
مقادیر
مشخصشده
(افزودن «%»
به یک بُعد
به معنی
«درصدی از
اندازه در
امتداد
همان
محور» است
که از آخرین
تصویر «[-1]»
گرفته
میشود). هر
بُعد
مشخصشده
را میتوان
بهصورت
«[image]» نیز
نوشت، که در
این صورت با
اندازهٔ
تصویر
موجود «[image]»
(در امتداد
همان محور)
تنظیم
میشود.
«values»
میتواند
دنبالهای
از اعداد
جداشده با
کاما «,» یا
یک عبارت
ریاضی
باشد،
مانند
مولفهٔ
ورودی
«256,256,1,3,[x,y,128]» که
یک تصویر
رنگی RGB با
اندازهٔ
«256x256» با
سایهروشن
فضایی در
کانالهای
قرمز و سبز
ایجاد
میکند
(برای
اطلاعات
بیشتر
درباره
عبارتهای
ریاضی به
بخش Mathematical Expressions
مراجعه
کنید).
- «(v1,v2,..[:delimiter | axis_order])[xN]»:
درج یک یا
«N» تصویر
جدید از روی
مقادیر
صریح.
جداکنندهٔ
مقادیر در
داخل
پرانتز
میتواند
«,»
(جداکنندهٔ
ستون)، «;»
(جداکنندهٔ
سطر)، «/»
(جداکنندهٔ
برش) یا «^»
(جداکنندهٔ
کانال) باشد.
برای
نمونه،
عبارت
«(1,2,3;4,5,6;7,8,9)» یک
ماتریس ۳×۳
(تصویر
اسکالر) با
مقادیر ۱ تا
۹ ایجاد
میکند.
- «('string'[:delimiter])[xN]»: درج
یک یا «N»
تصویر جدید
از رشتهٔ
دادهشده،
با پر کردن
تصاویر با
کدهای
نویسههای
تشکیلدهندهٔ
رشته. در
صورت مشخص
شدن، «delimiter»
جهتگیری
اصلی تصویر
را تعیین
میکند.
جداکننده
میتواند
«x» (معادل
«,» که
پیشفرض
است)، «y»
(معادل «;»)،
«z» (معادل
«/») یا «c»
(معادل «^»)
باشد.
هنگامی که
جداکنندهٔ
مشخصشده
«,»، «;»،
«/» یا «^»
باشد،
عبارت در
عمل معادل
«({'string'[:delimiter]})[xN]»
خواهد بود
(برای
اطلاعات
بیشتر
درباره نحو
نگارش به
بخش Substitution Rules
مراجعه
کنید).
- «0[xN]»: درج یک
یا «N»
تصویر جدید
خالی (empty)
بدون هیچ
دادهٔ
پیکسلی.
تصاویر
خالی تنها
در موارد
نادر
استفاده
میشوند.
* مولفهٔ
ورودی «name=value»
متغیر جدید
«name» را
تعریف
میکند یا
یک مقدار
رشتهای
جدید را به
متغیر
موجود
تخصیص
میدهد. نام
متغیرها
باید از
مجموعه
نویسههای
«[a-zA-Z0-9_]»
استفاده
کرده و
نمیتواند
با عدد آغاز
شود.
* تعریف
متغیر
همیشه نسبت
به دستور
جاری محلی (local)
است، به جز:
- هنگامی که
با زیرخط
«_» آغاز
شود. در این
صورت، برای
هر دستوری
که خارج از
دامنهٔ
دستور جاری
فراخوانی
شود نیز
قابل
دسترسی
خواهد بود
(متغیر
سراسری یا global).
- هنگامی که
در یک دستور
با متغیر
اشتراکی (shared variable)
تعریف شود،
متغیر در
دستور
فراخواننده
(والد) نیز
قابل
دسترسی
میگردد.
دستور
متغیر
اشتراکی
دستوری است
که نام آن با
«__» آغاز
شود (مانند
«__foo»).
* اگر نام
متغیر با دو
زیرخط «__»
آغاز شود،
متغیر
سراسری
میان
ریسههای (threads)
مختلف نیز
به اشتراک
گذاشته
میشود و
دستورهایی
که بهصورت
موازی اجرا
میشوند
میتوانند
آن را
بخوانند/مقداردهی
کنند (برای
این منظور
دستور parallel را
ببینید). در
غیر این
صورت، نسبت
به ریسهای
که آن را
تعریف کرده
محلی باقی
میماند.
* متغیرهای
عددی را
میتوان با
استفاده از
این
عملگرهای
ویژه
بهروزرسانی
کرد: «+=»
(جمع)، «-=»
(تفریق)، «*=»
(ضرب)، «/=»
(تقسیم)، «%=»
(باقیمانده/پیمانه)،
«&=» (AND بیتی)،
«|=» (OR بیتی)،
«^=» (توان)،
«<<=» و «>>=»
(شیفت بیتی
به چپ و
راست). برای
نمونه: «foo=1»
«foo+=3».
* مولفهٔ
ورودی «name.=string»
رشتهٔ «string»
را به
انتهای
متغیر «name»
پیوست
میکند.
* مولفهٔ
ورودی
«name..=string»
رشتهٔ «string»
را به
ابتدای
متغیر «name»
اضافه
میکند.
* انتساب و
بهروزرسانی
چندگانهٔ
متغیرها با
عبارات زیر
مجاز است:
«name1,name2,...,nameN=value» یا
«name1,name2,...,nameN=value1,value2,...,valueN»
که در آنها
عملگر
انتساب «=»
میتواند
با یکی از
عملگرهای
مجاز
جایگزین
شود (مانند
«+=»).
* متغیرها
معمولاً
اعداد یا
رشتهها را
ذخیره
میکنند. از
دستور store
برای
انتساب
متغیرها از
دادههای
تصویر
استفاده
کنید (و
بعداً از
نحو «input $variable»
برای
بازگرداندن
آنها به
فهرست
تصاویر).
۶.
مولفههای
دستور و
انتخابها
-----------------------------
* هر مولفهٔ G'MIC
که نام فایل
یا رشتهٔ
ورودی ویژه
نباشد،
معمولاً
بیانگر یک
«دستور»
است. بهطور
کلی،
دستورها
عملیات
پردازش
تصویر را
روی یک یا
چند تصویر
موجود در
فهرست
انجام
میدهند.
* دستورهای
پرکاربرد
دارای دو
نام معادل
هستند («regular»
یا عادی و
«short» یا
کوتاه). برای
نمونه،
نامهای
دستور «resize»
و «r» هر دو
به یک عمل
تغییر
اندازهٔ
تصویر
اشاره
دارند.
* یک دستور G'MIC
میتواند
دارای
آرگومانهای
اجباری یا
اختیاری
باشد.
آرگومانهای
دستور باید
در مولفهٔ
بعدی در خط
فرمان مشخص
شوند. در
صورت نیاز،
از کاما «,»
برای
جداسازی
آرگومانهای
چندگانهٔ
یک دستور
استفاده
میشود.
* اجرای یک
دستور G'MIC را
میتوان با
افزودن
«[selection]» به
انتهای نام
دستور،
تنها به
زیرمجموعهای
از فهرست
تصاویر
محدود کرد.
نمونههایی
از نحوهای
معتبر برای
«selection»
عبارتند از:
- «command[-2]»:
اعمال
دستور تنها
روی تصویر
یکی مانده
به آخر «[-2]»
در فهرست.
- «command[0,1,3]»:
اعمال
دستور تنها
روی تصاویر
«[0]»، «[1]» و
«[3]».
- «command[3-6]»:
اعمال
دستور تنها
روی تصاویر
«[3]» تا «[6]»
(یعنی «[3]»،
«[4]»، «[5]» و
«[6]»).
- «command[50%-100%]»:
اعمال
دستور تنها
روی نیمهٔ
دوم فهرست
تصاویر.
- «command[0,-4--1]»:
اعمال
دستور تنها
روی نخستین
تصویر و
چهار تصویر
آخر.
- «command[0-9:3]»:
اعمال
دستور تنها
روی تصاویر
«[0]» تا «[9]»
با گام ۳
(یعنی روی
تصاویر
«[0]»، «[3]»،
«[6]» و «[9]»).
- «command[0--1:2]»:
اعمال
دستور تنها
روی
تصاویری از
فهرست که
نمایههای
زوج دارند.
- «command[0,2-4,50%--1]»:
اعمال
دستور روی
تصاویر
«[0]»، «[2]»،
«[3]»، «[4]» و
روی نیمهٔ
دوم فهرست
تصاویر.
- «command[^0,1]»:
اعمال
دستور روی
تمام
تصاویر به
جز دو تصویر
اول.
- «command[name1,name2]»:
اعمال
دستور روی
تصاویر
نامگذاریشدهٔ
«name1» و «name2».
* نمایهها
در
انتخابها
همواره به
ترتیب
صعودی مرتب
میشوند و
نمایههای
تکراری
نادیده
گرفته
خواهند شد.
برای
نمونه،
انتخابهای
«[3-1,1-3]» و «[1,1,1,3,2]»
هر دو معادل
«[1-3]» هستند.
اگر
میخواهید
یک دستور
واحد را
چندین بار
روی یک
تصویر
تکرار
کنید،
بهجای آن
از حلقهٔ
«repeat..done»
استفاده
نمایید.
معکوس کردن
ترتیب
تصاویر
برای یک
دستور با
معکوس کردن
صریح ترتیب
تصاویر در
فهرست از
طریق دستور
«reverse[selection]» حاصل
میشود.
*
انتخابهای
دستور «[-1]»،
«[-2]» و «[-3]»
چنان
پرکاربرد
هستند که
میانبرهای
اختصاصی
خود را
دارند که
بهترتیب
«.»، «..» و
«...» هستند.
برای
نمونه،
دستور «blur..»
معادل «blur[-2]»
است. این
میانبرها
هنگام
تعیین
آرگومانهای
دستور نیز
کار
میکنند.
* دستورهای G'MIC
که بدون
«[selection]»
فراخوانی
شوند بر روی
تمام
تصاویر
موجود در
فهرست
اعمال
میگردند؛
یعنی
انتخاب
پیشفرض
«[0--1]» است
(بهجز
دستور input که
انتخاب
پیشفرض آن
«[-1]» است).
* افزودن یک
خط تیره «-»
به ابتدای
یک دستور G'MIC
مجاز است.
این ویژگی
میتواند
برای تشخیص
آسانتر
مولفههای
دستور در یک
خطلولهٔ
تکخطی (که
معمولاً از
پوسته
فراخوانی
میشود)
مفید باشد.
* یک دستور G'MIC
با علامت
مثبت
پیشوندشدهٔ
«+»
بهصورت
درجا (in-place) عمل
نمیکند،
بلکه
نتیجهٔ خود
را
بهعنوان
یک یا چند
تصویر جدید
در انتهای
فهرست
تصاویر درج
مینماید.
* دو نوع
دستور
مختلف وجود
دارد که
میتوانند
توسط مفسر G'MIC
اجرا شوند:
- دستورهای
توکار (Built-in commands)
قابلیتهای
کدگذاریشدهٔ
ثابت در
هستهٔ مفسر
هستند.
بنابراین
بهصورت کد
باینری
کامپایل
شده و در
بیشتر
مواقع سریع
اجرا
میشوند.
حذف یک
آرگومان
هنگام
فراخوانی
دستور
توکار مجاز
نیست، مگر
اینکه تمام
آرگومانهای
بعدی نیز
حذف شوند.
برای
نمونه،
فراخوانی
«blur 1,,1»
نامعتبر
است اما «blur
1» صحیح است.
- دستورهای
سفارشی (Custom commands)
بهصورت
خطلولههای
G'MIC از
دستورهای
توکار یا
دیگر
دستورهای
سفارشی
تعریف
میشوند.
آنها توسط
مفسر G'MIC
تجزیه شده و
از این رو
کمی کندتر
از
دستورهای
توکار اجرا
میشوند.
حذف
آرگومانها
هنگام
فراخوانی
دستور
سفارشی
مجاز است.
برای
نمونه،
عبارتهای
«flower ,,,100,,2» یا «flower
,» صحیح
هستند.*
بیشتر
دستورهای
موجود در G'MIC
در واقع
بهصورت
دستورهای
سفارشی (custom commands)
تعریف
شدهاند.
* کاربران
میتوانند
بهسادگی
دستورهای
سفارشی خود
را به مفسر G'MIC
اضافه کنند
(برای
جزئیات
بیشتر به
بخش Adding Custom Commands
مراجعه
کنید). امکان
افزودن
دستورهای
توکار (built-in)
جدید وجود
ندارد (مگر
آنکه کد
منبع مفسر G'MIC
را تغییر
داده
و مجدداً
کامپایل
کنید).
7.
ویژگیهای
ورودی/خروجی
(Input/Output Properties)
-----------------------------------------------
* نرمافزار
G'MIC قادر به
خواندن/نوشتن
بیشتر
قالبهای
سنتی فایل
تصویر است،
از جمله:
- فایلهای
۲بعدی
خاکستری/رنگی:
'.png'، '.jpeg'، '.gif'،
'.pnm'، '.tif'، '.bmp'، ...
- فایلهای
۳بعدی حجمی:
'.dcm'، '.hdr'، '.nii'،
'.cube'، '.pan'، '.inr'،
'.pnk'، ...
- فایلهای
ویدئویی:
'.mpeg'، '.avi'، '.mp4'،
'.mov'،
'.ogg'، '.flv'، ...
- فایلهای
متنی یا
دادههای
باینری
عمومی: '.gmz'،
'.cimg'،
'.cimgz'، 'flo'، 'ggr'،
'gpl'، '.dlm'،
'.asc'، '.pfm'، '.raw'،
'.txt'، '.h'.
- فایلهای
مش ۳بعدی:
'.off'، '.obj'.
* هنگام کار
با تصاویر
رنگی، G'MIC
عموماً
دادهها را
با استفاده
از فضای
رنگی معمول
sRGB
میخواند،
مینویسد و
نمایش
میدهد.
* هنگام
بارگذاری
یک فایل '.png'
یا '.tiff'، عمق
بیت
تصویر(های)
ورودی در status
ذخیره
میشود.
* نرمافزار
G'MIC قادر به
مدیریت
اشیاء مش
۳بعدی (3D mesh objects)
است که ممکن
است از
فایلها
خوانده
شوند یا
توسط
دستورهای G'MIC
تولید شوند.
یک شیء
۳بعدی
بهصورت یک
تصویر
نردهای
تکستونی
حاوی
دادههای
شیء با این
ترتیب
ذخیره
میشود: { magic_number;
sizes; vertices; primitives; colors; opacities }.
سپس این
نمایشهای
۳بعدی
میتوانند
مانند
تصاویر
معمولی
پردازش
شوند (برای
دسترسی
جداگانه به
هر یک از
دادههای
این شیء
۳بعدی،
دستور split3d
را ببینید).
* توجه داشته
باشید که
قالبهای
استاندارد
فایل ممکن
است گاهی
برای ذخیره
همه
دادههای
تصویر
موجود
مناسب
نباشند،
زیرا G'MIC از
بافرهای
تصویر ممیز
شناور (floating-point)
استفاده
میکند.
برای
نمونه،
ذخیره
تصویری که
در ابتدا با
۱۶ بیت در هر
کانال
بارگذاری
شده
بهصورت یک
فایل '.jpg'،
منجر به از
دست رفتن
اطلاعات
خواهد شد.
برای
اطمینان از
حفظ کامل
دقت
دادهها
هنگام
ذخیره
تصاویر،
از پسوند
فایل
اختصاصی G'MIC
یعنی '.gmz'
استفاده
کنید.
* گاهی
اوقات،
ممکن یا
لازم است که
گزینههای
فایل برای
قالبهای
خاصی تنظیم
شوند:
- فایلهای
ویدئویی:
تنها
زیرفریمهایی
از یک
دنباله
تصویر را
میتوان
بارگذاری
کرد،
با استفاده
از عبارت
ورودی
'filename.ext,[first_frame[,last_frame[,
step]]]'. مقدار
'last_frame==-1' را قرار
دهید تا
نشان دهد
باید آخرین
فریم
ویدئو باشد.
مقدار 'step' را
به '0' تنظیم
کنید تا یک
فایل
ویدئویی
باز را
مجبور به
باز/بسته
شدن کند. نرخ
فریم و کدک
خروجی را
نیز
میتوان با
استفاده از
عبارت
خروجی
'filename.avi,_fps,_codec,_keep_open'
تعیین کرد
که در آن 'keep_open'
میتواند { 0:No
(default) | 1:Yes } باشد.
مقدار 'codec' یک
رشته ۴
نویسهای
است (ببینید
http://www.fourcc.org/codecs.php ) یا '0'
برای کدک
پیشفرض.
'keep_open' مشخص
میکند که
آیا فایل
ویدئویی
خروجی باید
برای الحاق
فریمهای
جدید در
ادامه،
باز نگه
داشته شود
یا خیر.
- فایلهای
'.cimg[z]': تنها
برشها و
زیرتصاویر
فایلهای .cimg
را میتوان
بارگذاری
کرد، با
استفاده از
عبارتهای
ورودی
'filename.cimg,N0,N1'،
'filename.cimg,N0,N1,x0,x1'،
'filename.cimg,N0,N1,x0,y0,x1,y1'،
'filename.cimg,N0,N1,x0,y0,z0,x1,y1,z1' یا
'filename.cimg,N0,N1,x0,y0,
z0,c0,x1,y1,z1,c1'. تعیین
'-1' برای یک
مختصات
نشاندهنده
حداکثر
مقدار ممکن
است. از
عبارت
خروجی
'filename.cimg[z][,datatype]'
میتوان
برای تحمیل
نوع پیکسل
خروجی
استفاده
کرد. 'datatype'
میتواند { auto
|
bool | uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64
|
float32 | float64 } باشد.
- فایلهای
باینری '.raw':
ابعاد
تصویر و نوع
پیکسل
ورودی را
میتوان
هنگام
بارگذاری
فایلهای
'.raw' با عبارت
ورودی
'filename.raw[,datatype][,width][,height[,depth[,dim[,offset]]]]]'
مشخص کرد.
اگر هیچ
ابعادی
تعیین
نشود،
تصویر حاصل
یک بردار
تکستونی
با
حداکثر
ارتفاع
ممکن خواهد
بود. نوع
پیکسل را
میتوان با
عبارت
خروجی
'filename.raw[,datatype]' نیز
تعیین کرد.
مقدار 'datatype'
میتواند
مشابه
فایلهای
'.cimg[z]' باشد.
- فایلهای
'.yuv': ابعاد
تصویر
هنگام
بارگذاری
باید مشخص
شود،
و تنها
زیرفریمهایی
از یک
دنباله
تصویر را
میتوان
بارگذاری
کرد، با
استفاده از
عبارت
ورودی
'filename.yuv,width,height[,chroma_subsampling[,first_frame[,
last_frame[,step]]]'. مقدار
'chroma_subsampling'
میتواند { 420 |
422 | 444
} باشد.
هنگام
ذخیرهسازی،
حالت
زیرنمونهبرداری
کروما (chroma subsampling)
را میتوان
با عبارت
خروجی
'filename.yuv[,chroma_subsampling]'
تعیین کرد.
- فایلهای
'.tiff': تنها
زیرتصاویر
فایلهای tiff
چندصفحهای
را
میتوان
بارگذاری
کرد، با
استفاده از
عبارت
ورودی
'filename.tif,_first_frame,_last_frame,
_step'. عبارت
خروجی
'filename.tiff,_datatype,_compression,
_force_multipage,_use_bigtiff'
میتواند
برای تعیین
نوع پیکسل
خروجی،
و همچنین
روش
فشردهسازی
استفاده
شود. مقدار
'datatype'
میتواند
همانند
فایلهای
'.cimg[z]' باشد.
مقدار 'compression'
میتواند { none |
adobe_deflate |
ccitt_t4 | ccitt_t6 | ccittfax3 | ccittfax4 | ccittrle | ccittrlew | dcs
|
deflate | it8bl | it8ctpad | it8lw | it8mp | jbig | jp2000 | jpeg | jpg |
jxl |
lerc | lzma | lzw | next | ojpeg | packbits | pixarfilm | pixarlog |
sgilog |
sgilog24 | t43 | t85 | thunderscan | webp | zip | zstd }
باشد.
مقدار 'force_multipage'
میتواند { 0:No
(default) | 1:Yes } باشد.
مقدار 'use_bigtiff'
میتواند { 0:No |
1:Yes (default) } باشد.
- فایلهای
'.pdf': هنگام
بارگذاری
یک فایل،
تفکیکپذیری
رندر (rendering resolution)
را میتوان
با استفاده
از عبارت
ورودی 'filename.pdf,resolution'
مشخص کرد،
که در آن 'resolution'
یک مقدار
عدد صحیح
بدون علامت
است.
- فایلهای
'.gif':
فایلهای gif
پویانما را
میتوان با
استفاده از
عبارت
ورودی
'filename.gif,fps>0,nb_loops'
ذخیره کرد.
مقدار
'nb_loops=0' را تعیین
کنید تا
تعداد
حلقههای
پویانمایی
بینهایت
حاصل شود
(این رفتار
پیشفرض
است).
- فایلهای
'.jpeg' و '.webp':
کیفیت
خروجی را
میتوان
(برحسب ٪) با
استفاده از
عبارت
خروجی 'filename.jpg,30'
مشخص کرد (در
اینجا،
برای
دریافت
خروجی با
کیفیت ۳۰٪).
مقدار
پیشفرض '100'
است.
- فایلهای
'.png': عمق بیت
را میتوان
(۸ یا ۱۶) با
استفاده از
عبارت
خروجی 'filename.png,16'
تعیین کرد
(در اینجا،
برای
دریافت یک
فایل
خروجی با
عمق بیت ۱۶).
بهطور
پیشفرض، G'MIC
بهترین عمق
بیت را
بهصورت
خودکار حدس
میزند.
- فایلهای
'.mnc': سرایند (header)
خروجی را
میتوان از
فایلی دیگر
تنظیم کرد،
با استفاده
از عبارت
خروجی
'filename.mnc,header_template.mnc'.
- فایلهای
'.pan'، '.cpp'، '.hpp'،
'.c' و '.h':
نوع داده
خروجی را
میتوان با
عبارت
خروجی
'filename[,datatype]' انتخاب
کرد. مقدار
'datatype'
میتواند
مشابه
فایلهای
'.cimg[z]' باشد.
- فایلهای
'.gmic': فرض
میشود این
نامهای
فایل،
فایلهای
دستورهای
سفارشی G'MIC
هستند.
بارگذاری
چنین
فایلی،
دستورهایی
را که تعریف
میکند به
مفسر اضافه
خواهد کرد.
اطلاعات
اشکالزدایی
را میتوان
با عبارت
ورودی
'filename.gmic[,add_debug_info]'
فعال/غیرفعال
کرد که در آن
'debug_info'
میتواند
{ 0:False | 1:True } باشد.
- افزودن
پیشوند 'ext:'
به نام فایل
(مانند 'jpg:filename')
G'MIC را وادار
میکند تا
فایل را
طوری
بخواند/بنویسد
که گویی
پسوند
مشخصشده
'.ext' را دارد.
* بسته به
پرچمهای
پیکربندی
که در زمان
ساخت
نرمافزار
G'MIC
تنظیم
شدهاند،
ممکن است
برخی از
قالبها و
گزینههای
ورودی/خروجی
پشتیبانی
نشوند.
8. قوانین
جایگزینی
(Substitution Rules)
--------------------------------------
* موارد G'MIC
حاوی '$' یا '{}'
پیش از
تفسیر شدن،
جایگزین
میشوند. از
این
عبارتهای
جایگزین
برای
دسترسی به
دادههای
مختلف
از محیط
مفسر
استفاده
کنید.
* هر دو عبارت
'$name' و '${name}' با
مقدار
متغیر
نامگذاریشده
(که پیشتر
با مورد 'name=value'
تنظیم شده)
جایگزین
میشوند.
اگر این
متغیر
قبلاً
تنظیم نشده
باشد،
عبارت با
بالاترین
نمایه مثبت
تصویر
نامگذاریشده
'[name]' جایگزین
میشود. اگر
هیچ تصویری
این نام را
نداشته
باشد،
عبارت با
مقدار
متغیر
محیطی
سیستمعامل
با همان نام
جایگزین
میشود
(اگر تعریف
نشده باشد،
ممکن است یک
رشته خالی
باشد).
* متغیرهای
رزروشده
زیر توسط
مفسر G'MIC از
پیش تعریف
شدهاند:
- '$!': تعداد
تصاویر
فعلی در
فهرست.
- '$>' و '$<':
نمایه
صعودی/نزولی
آخرین حلقه
(در حال
اجرای
کنونی).
مقدار '$>' از
'0' (اولین
تکرار حلقه)
تا 'nb_iterations - 1'
(آخرین
تکرار) پیش
میرود. '$<'
برعکس عمل
میکند
(بهجز
حلقههای
'for' و 'while' که در
آنها به
دلیل مشخص
نبودن
تعداد
تکرارها،
مقدار '$<'
برابر 'nan'
است).
- '$%': مقداری
که در یک
حلقه در حال
اجرا
بهصورت
خطی از '0'
(تکرار اول)
به '1' (تکرار
آخر) تغییر
میکند
(معادل
'$>/($>+$<)').
- '$/': پشته
فراخوانی
فعلی.
آیتمهای
پشته با
اسلش
'/' از یکدیگر
جدا
میشوند.
- '$|': مقدار
فعلی (برحسب
ثانیه)
تایمر با
دقت
میلیثانیه.
- '$^': سطح
پرگویی
فعلی.
- '$_cpus': تعداد
هستههای
پردازنده
موجود در
دستگاه شما.
- '$_flags': فهرست
پرچمهای
فعالشده
هنگام
کامپایل
مفسر G'MIC.
- '$_host': رشتهای
مشخصکننده
میزبانی که
مفسر G'MIC را
اجرا
میکند
(مانند 'cli' یا
'gimp').
- '$_os': رشتهای
توصیفکننده
سیستمعامل
در حال اجرا.
- '$_path_rc': مسیر
پوشه G'MIC مورد
استفاده
برای ذخیره
فایلهای
پیکربندی
(مقدار آن
وابسته به
سیستمعامل
است).
- '$_path_user': مسیر
فایل
کاربری G'MIC
یعنی '.gmic' یا
'user.gmic' (مقدار آن
وابسته به
سیستمعامل
است).
- '$_path_commands': فهرستی
از تمامی
فایلهای
دستور
واردشده
(ذخیرهشده
بهعنوان
یک فهرست
تصویر).
- '$_pid': شناسه
فرایند
فعلی،
بهصورت یک
عدد صحیح.
- '$_pixeltype': نوع
پیکسلهای
تصویر
(پیشفرض:
'float32').
- '$_prerelease': برای
نسخههای
پیشانتشار،
تاریخ
پیشانتشار
بهصورت
'yymmdd'. برای
نسخههای
پایدار،
این متغیر
روی '0' تنظیم
شده است.
- '$_user_agent':
رشتهای
مشخصکننده
user-agent مورد
استفاده G'MIC
هنگام
دسترسی به
فایلهای
شبکه
(پیشفرض: 'gmic').
- '$_version': یک عدد ۳
رقمی
نشاندهنده
نسخه فعلی
مفسر G'MIC
(مانند '405').
- '$_vt100': در صورتی
که خروجی
متن رنگی
روی کنسول
مجاز باشد
روی '1' تنظیم
میشود.
در غیر این
صورت، روی '0'
تنظیم است.
* هر دو عبارت
'$$name' و '$${name}' با کد
اسکریپت G'MIC
دستور
سفارشی
نامبرده 'custom
command' جایگزین
میشوند،
یا با یک
رشته خالی
در صورتی که
هیچ
دستور
سفارشی با
نام
مشخصشده
وجود
نداشته
باشد.
* عبارت '${"-pipeline"}'
با مقدار
وضعیت پس
از
اجرای
خطلوله G'MIC
جایگزین
میشود
(دستور status را
ببینید).
بنابراین
عبارت '${}'
نشاندهنده
مقدار
وضعیت فعلی
است.
* عبارت '{:string}'
با نسخهای
از رشته که
درون
علامتهای
نقلقول
جفتی قرار
گرفته
جایگزین
میشود.
* عبارت '{/string}'
با نسخه
گریزخورده
(escaped) رشته
جایگزین
میشود.
* عبارت '{'string'[:delimiter]}'
(بین
نقلقولهای
تکی) با
دنباله
کدهای
نویسهای
سازنده
رشته،
جداشده با
جداکننده
مشخصشده،
جایگزین
میشود.
جداکنندههای
ممکن
عبارتند از
','
(پیشفرض)،
';'، '/'،
'^' یا ' '. برای
نمونه،
مورد '{'foo'}' با
'102,111,111' و '{'foo':;}' با
'102;111;111'
جایگزین
میشود.
* عبارت
'{image,feature[:delimiter]}' با یک
ویژگی مشخص
از
تصویر '[image]'
جایگزین
میشود. 'image'
میتواند
شماره
تصویر یا
نام تصویر
باشد.
همچنین
میتوان آن
را حذف کرد
که در این
صورت آخرین
تصویر '[-1]'
در فهرست
برای ویژگی
درخواستی
در نظر
گرفته
میشود.
ویژگی
مشخصشده
'feature'
میتواند
یکی از
موارد زیر
باشد:
- 'b': نام پایه
تصویر (یعنی
نام فایل
بدون مسیر
پوشه و
پسوند).
- 'f': نام پوشه
تصویر.
- 'n': نام
تصویر یا
نام فایل (در
صورتی که
تصویر از یک
فایل
خوانده شده
باشد).
- 't': رشته
متنی
برگرفته از
مقادیر
تصویر که
بهصورت
کدهای
نویسهای
در نظر
گرفته
میشوند.
- 'x': پسوند
تصویر (یعنی
نویسههای
پس از آخرین
'.' در نام
تصویر).
- '^': دنباله
تمام
مقادیر
تصویر،
جداشده با
کاما ',
'.
- '@subset': دنباله
مقادیر
تصویر
متناظر با
زیرمجموعه
مشخصشده،
و جداشده با
کاما ','.
- هر 'feature' دیگر
بهعنوان
یک عبارت
ریاضی
وابسته به
تصویر '[image]' در
نظر گرفته
میشود و با
نتیجه
ارزیابیشده
آن
(مقدار ممیز
شناور)
جایگزین
میگردد.
برای
نمونه،
عبارت '{0,
w+h}' با مجموع
عرض و
ارتفاع
تصویر اول
جایگزین
میشود
(برای
جزئیات
بیشتر به
بخش Mathematical Expressions
مراجعه
کنید). اگر یک
عبارت
ریاضی با یک
زیرخط '_'
شروع شود،
مقدار حاصل
به قالبی
خوانا
کوتاه
میشود.
برای
نمونه،
مورد '{_pi}' با
'3.14159' جایگزین
میشود
(در حالی که
'{pi}' با '3.141592653589793'
جایگزین
میشود).
- یک 'feature' محصور
در نقلقول
وارون (backquote) با
رشتهای
جایگزین
میشود که
کدهای
نویسهای
آن با فهرست
مقادیر
حاصل از
ارزیابی
عبارت
ریاضی
مشخصشده
مطابقت
دارد. برای
نمونه،
مورد '{`[102,111,
111]`}' با 'foo' و
مورد '{`vector8(65)`}' با
'AAAAAAAA' جایگزین
میشود.
* عبارت '{*}' با
وضعیت
نمایانی
پنجره
نمایش آنی
'#0' جایگزین
میشود
(میتواند {
0:Closed | 1:Visible } باشد).
* عبارت
'{*[index],feature1,...,featureN[:delimiter]}' با
مجموعه
خاصی از
ویژگیهای
پنجره
نمایش آنی
'#0' (یا
'#index'، در صورت
تعیین)
جایگزین
میشود.
ویژگیهای
درخواستی
'features'
میتوانند
موارد زیر
باشند:
- 'u': عرض صفحه
نمایش (در
واقع مستقل
از اندازه
پنجره).
- 'v': ارتفاع
صفحه نمایش
(در واقع
مستقل از
اندازه
پنجره).
- 'uv': عرض صفحه
نمایش*ارتفاع
صفحه نمایش.
- 'd': عرض
پنجره (یعنی
عرض ویجت
پنجره).
- 'e': ارتفاع
پنجره (یعنی
ارتفاع
ویجت پنجره).
- 'de': عرض
پنجره*ارتفاع
پنجره.
- 'w': عرض
نمایش (یعنی
عرض ناحیه
نمایش
مدیریتشده
توسط
پنجره).
- 'h': ارتفاع
نمایش (یعنی
ارتفاع
ناحیه
نمایش
مدیریتشده
توسط
پنجره).
- 'wh': عرض
نمایش*ارتفاع
نمایش.
- 'i': مختصات X
پنجره
نمایش.
- 'j': مختصات Y
پنجره
نمایش.
- 'f': وضعیت
تمامصفحه
فعلی نمایش
آنی.
- 'n': نوع
نرمالسازی
فعلی نمایش
آنی.
- 't': عنوان
پنجره
نمایش آنی.
- 'x': مختصات X
موقعیت
موشواره (یا
-1، اگر خارج
از
ناحیه
نمایش باشد).
- 'y': مختصات Y
موقعیت
موشواره (یا
-1، اگر خارج
از
ناحیه
نمایش باشد).
- 'b': وضعیت
دکمههای
موشواره { 1:left-but. |
2:right-but. |
4:middle-but. }.
- 'o': وضعیت
چرخ
موشواره.
- 'k': کد
دهدهی
کلید
فشردهشده
در صورت
وجود، در
غیر این
صورت 0.
- 'c': بولی (0 یا 1)
که نشان
میدهد آیا
نمایش آنی
اخیراً
بسته شده
است یا خیر.
- 'r': بولی که
نشان
میدهد آیا
اندازه
نمایش آنی
اخیراً
تغییر
یافته
است یا خیر.
- 'm': بولی که
نشان
میدهد آیا
نمایش آنی
اخیراً
جابهجا
شده است یا
خیر.
- هر 'feature' دیگر
نشاندهنده
نام کد کلید
(با حروف
بزرگ) است،
و با یک
مقدار بولی
که وضعیت
فعلی کلید
را توصیف
میکند { 0:Pressed
| 1:Released }
جایگزین
میشود.
- همچنین
میتوانید
یک خط فاصله
'-' را در
ابتدای یک
'feature' (که
از آن
پشتیبانی
میکند)
قرار دهید
تا رویداد
مربوطه
بلافاصله
پس از
خواندن
وضعیت آن
تخلیه (flush) شود
(برای
رویدادهای
کلیدها،
موشواره و
پنجره کار
میکند).*
جایگزینی
در موارد
میان
نقلقولهای
دوتایی
هرگز
انجام
نمیشود.
برای
فعالسازی
جایگزینی
در صورت
نیاز، باید
نقلقول را
شکست،
مانند '"3+8 kg =
"{3+8}" kg"'.
بنابراین
استفاده از
نقلقول
دوتایی
روشی مناسب
برای
غیرفعال
کردن
سازوکار
جایگزینی
در موارد،
در هنگام
نیاز است.
* همچنین
میتوان با
گریز دادن
نویسههای
'{'، '}' یا '$'
سازوکار
جایگزینی
را روی
موارد خارج
از نقلقول
دوتایی
غیرفعال
کرد، مانند
'3+4 doesn't evaluate'.
۹.
عبارتهای
ریاضی (Mathematical Expressions)
----------------------------------------------
* بستهٔ G'MIC
دارای یک
تجزیهکنندهٔ
ریاضی
درونساخت
است که برای
ارزیابی
عبارتهای
ریاضی
(احتمالاً
پیچیده)
مشخصشده
درون
آکولادهای
'{}'، یا
فرمولها
در
دستورهایی
که ممکن است
یکی از
آنها را به
عنوان
آرگومان
دریافت
کنند (مانند
fill یا
eval) به کار
میرود.
* هنگامی که
زمینه
اجازه دهد،
یک فرمول
به ازای هر
پیکسل از
تصاویر
انتخابشده
ارزیابی
میشود
(مانند fill یا
eval).
* یک عبارت
ریاضی ممکن
است یک
اسکالر یا
یک بردار
با اندازهٔ
ثابت را
به عنوان
آرگومان
دریافت
کرده یا
برگرداند.
تجزیهکنندهٔ
ریاضی از
عملگرها،
توابع و
متغیرهای
زیر
پشتیبانی
میکند:
## عملگرهای
ریاضی
رایج:
'||' (یا
منطقی)، '&&'
(و منطقی)، '|'
(یا بیتی)،
'&' (و بیتی)،
'!='، '=='، '<='،
'>='،
'<'، '>'، '<<'
(شیفت بیتی
به چپ)، '>>'
(شیفت
بیتی به
راست)، '-'،
'+'، '*'، '/'، '%'
(باقیمانده)،
'^' (توان)، '!'
(نقیض
منطقی)، '~'
(نقیض بیتی)،
'++'،
'--'، '+='، '-='،
'*='، '/='، '%='،
'&='، '|='، '^='،
'>>'، '<<='
(عملگرهای
درجا).
## توابع
ریاضی
رایج:
'abs()', 'acos()', 'acosh()', 'arg0()',
'arg1()',
'argkth()', 'argmax()', 'argmaxabs()',
'argmin()',
'argminabs()', 'asin()', 'asinh()', 'atan()',
'atan2()', 'atanh()', 'avg()', 'bool()',
'cbrt()',
'ceil()', 'cos()', 'cosh()', 'cut()',
'deg2rad()', 'erf()', 'erfinv()', 'exp()',
'fact()', 'fibo()', 'floor()', 'frac()',
'gamma()', 'gauss()', 'gcd()', 'hypot()',
'int()',
'isconst()', 'isfinite()', 'isnan()', 'isnum()',
'isinf()', 'isint()', 'isbool()', 'isexpr()',
'isfile()', 'isdir()', 'isin()', 'kth()',
'lcm()',
'log()', 'log2()', 'log10()', 'logit()',
'max()',
'maxabs()', 'med()', 'min()', 'minabs()',
'narg()', 'prod()', 'rad2deg()', 'rol()'
(چرخش بیت به
چپ)،
'ror()' (چرخش بیت
به راست)، 'round()',
'sign()',
'sigmoid()', 'sin()', 'sinc()', 'sinh()',
'sqrt()', 'std()', 'srand(_seed)', 'sum()',
'tan()', 'tanh()', 'var()', 'xor()'.
* تابع 'cov(A,B,_avgA,_avgB)'
کوواریانس
میان
بردارهای
'A' و 'B' را
برآورد
میکند
(میانگینهای
برآوردشدهٔ
این
بردارها را
میتوان
به عنوان
آرگومان
مشخص کرد).
* تابع 'mse(A,B)'
میانگین
مربعات خطا
(MSE) میان
بردارهای 'A'
و 'B' را
برمیگرداند.
* تابع 'atan2(y,x)'
نگارش دو
آرگومانی
'atan()' با
آرگومانهای
'y' و 'x' است
(مشابه C/C++).
* تابع 'perm(k,n,_with_order)'
تعداد
جایگشتهای
'k' شیء از
مجموعهای
با 'n' شیء را
محاسبه
میکند.
* تابع 'gauss(x,_sigma,_is_normalized)'
مقدار
'exp(-x^2/(2*s^2))/(is_normalized?sqrt(2*pi*sigma^2):1)'
را
برمیگرداند.
* تابع 'cut(x,min,_max)' در
صورتی که 'x'
در محدودهٔ
'[min,
max]' باشد،
مقدار 'x' و
در غیر این
صورت 'min' یا 'max'
را
برمیگرداند.
* تابع 'abscut(x,min,_max,_offset)'
مقدار 'cut(abs(x) + offset,min,
max)*sign(x)' را
برمیگرداند.
* تابع 'narg(a_1,...,a_N)'
تعداد
آرگومانهای
ارائهشده
(در اینجا،
'N') را
برمیگرداند.
* تابع 'arg0(i,a_0,..,a_N)'
آرگومان
'i'ام 'a_i' را
برمیگرداند
(که در آن
اندیس 'i' از
'0' تا 'N' است).
* تابع 'arg1(i,a_1,..,a_N)'
همین کار را
انجام
میدهد،
اما برای
اندیس 'i' که
از
'1' تا 'N'
تغییر
میکند.
* تابع 'indexof(ref,a_0,..,a_N)'
اندیس 'i'
مربوط به
عنصر
'ref' را در
فهرست
عناصر 'a_k'
برمیگرداند
(یا اگر 'ref'
در فهرست
نباشد، '-1').
اندیس 'i' از
'0' آغاز
میشود.
* توابع 'isnum()'،
'isnan()'، 'isinf()'، 'isint()' و
'isbool()' نوع عدد
یا عبارت
ارائهشده
را
میآزمایند
و
'0' (نادرست)
یا '1' (درست)
را
برمیگردانند.
* تابع 'isfile('path')' (به
ترتیب 'isdir('path')')
بسته به
اینکه
آرگومان
رشتهای آن
مسیری
به یک فایل
موجود باشد
(به ترتیب به
یک
دایرکتوری)،
'0' (نادرست)
یا
'1' (درست) را
برمیگرداند.
* تابع 'ispercentage(arg)'
اگر 'arg' به یک
'%' ختم شود '1'
(درست)، و در
غیر این
صورت '0'
(نادرست) را
برمیگرداند.
* تابع 'isvarname('str')'
بسته به
اینکه
آرگومان
رشتهای آن
یک نام
متغیر
معتبر باشد
یا نه،
'0' (نادرست)
یا '1' (درست)
را
برمیگرداند.
* تابع 'isvar(varname)'
بسته به
اینکه 'varname' یک
متغیر از
پیش
تعریفشده
باشد یا
خیر،
'0' (نادرست)
یا '1' (درست)
را
برمیگرداند.
* تابع 'isin(v,a_1,...,a_n)'
بسته به
اینکه آیا
آرگومان
نخست 'v' در
مجموعهٔ
سایر
آرگومانهای
'a_i' ظاهر شده
است یا نه،
'0' (نادرست)
یا '1' (درست)
را
برمیگرداند.
* تابع 'isint(x,_xmin,_xmax)'
اگر 'x' یک
عدد صحیح
در محدودهٔ
'[xmin,xmax]' باشد '1'
(درست)، و در
غیر این
صورت '0'
(نادرست) را
برمیگرداند.
* تابع
'inrange(value,m,M,include_m,include_M)'
بسته به
اینکه آیا
مقدار
دادهشده
در محدودهٔ
'[m,
M]' قرار دارد
یا خیر، '0'
(نادرست) یا
'1' (درست) را
برمیگرداند
('include_m' و
'includeM' چگونگی
در نظر
گرفتن
مرزهای 'm' و
'M' را مشخص
میکنند).
* توابع 'argkth()'،
'argmin()'، 'argmax()'،
'argminabs()'،
'argmaxabs()'، 'avg()'، 'kth()'،
'min()'، 'max()'،
'minabs()'، 'maxabs()'، 'med()'،
'prod()'،
'std()'، 'sum()' و 'var()'
را میتوان
با تعداد
دلخواهی
از
آرگومانهای
اسکالر/برداری
فراخوانی
کرد.
* توابع 'vargkth()'،
'vargmin()'، 'vargmax()'،
'vargminabs()'، 'vargmaxabs()'،
'vavg()'، 'vkth()'،
'vmin()'، 'vmax()'، 'vminabs()'،
'vmaxabs()'،
'vmed()'، 'vprod()'، 'vstd()'،
'vsum()' و
'vvar()'
نگارشهای
توابع
پیشین با
آرگومانهای
برداری
هستند.
* تابع 'wave(x,type)' یک
تابع
دورهای با
دورهٔ
تناوب ۱ و
مقادیری در
[-1,1] تعریف
میکند.
آرگومان 'type'
شکل موج را
تعیین
میکند که
میتواند
{ 0:Square | 1:Triangle | 2:Ascending sawtooth | 3:Descending sawtooth |
4:Sine } باشد.
* تابع
'round(value,rounding_value,direction)' یک
مقدار
گردشده را
برمیگرداند.
آرگومان 'direction'
میتواند {
-1:To-lowest | 0:To-nearest | 1:To-highest }
باشد.
* توابع 'softmax(V,_temperature)'
و 'softmin(V,_temperature)'
به ترتیب softmax و
softmin بردار 'V' را
برمیگردانند.
مقدار
پیشفرض
برای 'temperature'
برابر 1 است.
* توابع
'softargmax(V,_temperature)' و
'softargmin(V,_temperature)'
به ترتیب softargmax و
softargmin بردار 'V'
را
برمیگردانند.
مقدار
پیشفرض
برای 'temperature'
برابر 1 است.
* تابع 'lerp(a,b,t)'
مقدار 'a*(1-t)+b*t'
را
برمیگرداند.
* تابع 'swap(a,b)'
مقادیر
آرگومانهای
دادهشده
را جابهجا
میکند.
'swap(#ind,offset0,offset1,_is_vector)'
پیکسلهای
تصویر '[ind]'
واقع در
آفستهای
'offset0' و 'offset1' را
جابهجا
میکند.
## نام
متغیرهای
از پیش
تعریفشده:
نام
متغیرهای
زیر از پیش
تعریف
شدهاند؛
هرچند
میتوان
آنها را
بازنویسی
کرد.
* 'l': طول
فهرست
کنونی
تصاویر.
* 'k': اندیس
تصویر
کنونی، در
بازهٔ '[0,l-1]'.
* 'w': عرض
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'h': ارتفاع
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'd': عمق
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 's': طیف
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'r': وضعیت
اشتراکی
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'wh':
میانبری
برای 'width*height'.
* 'whd':
میانبری
برای 'width*height*depth'.
* 'whds':
میانبری
برای 'width*height*depth*spectrum'
(یعنی تعداد
مقادیر
تصویر).
* 'ia'، 'ic'، 'id'،
'im'، 'iM'، 'in'،
'ip'، 'is'، 'iv': به
ترتیب
میانگین،
میانه،
انحراف
معیار،
کمینه،
بیشینه،
نُرم L2،
حاصلضرب،
مجموع و
واریانس
تصویر
کنونی،
در صورت
وجود (در غیر
این صورت '0').
* 'xm'، 'ym'، 'zm'، 'cm':
مختصات
پیکسلی
کمترین
مقدار در
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'xM'، 'yM'، 'zM'، 'cM':
مختصات
پیکسلی
بیشترین
مقدار در
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* تمام این
متغیرها
توسط
تجزیهکنندهٔ
ریاضی به
عنوان
مقادیر
ثابت تلقی
میشوند
(به منظور
بهینهسازی)
که در اکثر
مواقع نیز
واقعاً
همینطور
است. با این
حال،
اگر تابع
'resize(#ind,..)' در
عبارت
ریاضی به
کار رود این
موضوع ممکن
است
برقرار
نباشد. در
این صورت،
ایمنتر
است که به
جای
متغیرهای
نامگذاریشدهٔ
متناظر،
توابع
'l()'، 'w(_#ind)'، 'h(_#ind)'، ...
's(_#ind)' و 'in(_#ind)'
فراخوانی
شوند.
* 'i': مقدار
پیکسل در
حال پردازش
کنونی (یعنی
مقدار واقع
در '(x,y,z,
c)') در تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
* 'iN': مقدار
کانال Nام
پیکسل در
حال پردازش
کنونی (یعنی
مقدار
واقع در '(x,y,z,N)'
در تصویر
کنونی، در
صورت وجود،
وگرنه
'0'). مقدار 'N'
باید عددی
صحیح در
محدودهٔ '[0,9]'
باشد.
* 'R'، 'G'، 'B' و 'A'
به ترتیب
معادل 'i0'،
'i1'، 'i2' و 'i3'
هستند.
* 'I': پیکسل
برداری در
حال پردازش
کنونی در
تصویر
کنونی، در
صورت وجود
(در غیر این
صورت '0').
تعداد
مؤلفههای
بردار
برابر با
تعداد
کانالهای
تصویر است
(به عنوان
مثال 'I' = '[ R,G,B ]'
برای یک
تصویر 'RGB').
* '_0' و '_1':
بردارهایی
که بُعد
آنها
برابر با
تعداد
کانالهای
تصویر
کنونی است و
تمامی
مقادیر
آنها '0' یا
'1' هستند.
* میتوانید
'#ind' را به هر
یک از
نامهای
متغیر بالا
اضافه کنید
تا
اطلاعات
تصویر
شمارهگذاریشدهٔ
دلخواه '[ind]'
در فهرست
بازیابی
شود (در
مواردی
که این کار
معنادار
باشد). برای
مثال 'ia#0'
نشاندهندهٔ
میانگین
اولین
تصویر
در فهرست
است).
* 'x': ستون در
حال پردازش
کنونی
تصویر، در
صورت وجود
(در غیر این
صورت
'0').
* 'y': سطر در
حال پردازش
کنونی
تصویر، در
صورت وجود
(در غیر این
صورت
'0').
* 'z': برش
(اسلایس) در
حال پردازش
کنونی
تصویر، در
صورت وجود
(در غیر این
صورت
'0').
* 'c': کانال در
حال پردازش
کنونی
تصویر، در
صورت وجود
(در غیر این
صورت
'0').
* 't': شناسهٔ
ریسه
هنگامی که
یک عبارت با
چند ریسه
ارزیابی
میشود
('0' به معنای
ریسهٔ اصلی
(master thread) است).
* 'n': حداکثر
تعداد
ریسهها
هنگامی که
عبارت به
صورت موازی
ارزیابی
میشود (به
گونهای که
't' از '0' تا 'n-1'
تغییر کند).
* 'e': مقدار e،
یعنی '2.71828...'.
* 'pi': مقدار pi
(عدد پی)،
یعنی '3.1415926...'.
* 'eps': مقدار
اپسیلون
ماشین،
یعنی
اختلاف
میان 1.0
و
نزدیکترین
مقدار قابل
نمایش بعدی
توسط نوع double.
* 'u': مقداری
تصادفی در
بازهٔ '[0,1]' با
توزیع
یکنواخت.
* 'v': یک عدد
صحیح
تصادفی که
یا '0' است یا
'1'، با
توزیع
یکنواخت.
* 'g': مقداری
تصادفی با
توزیع
گاوسی و
واریانس 1
(تقریباً در
بازهٔ '[-6,6]').
* 'interpolation': مقدار
حالت
درونیابی
پیشفرض
مورد
استفاده
هنگام
خواندن
مقادیر
پیکسلها
با
عملگرهای
دسترسی به
پیکسل (یعنی
زمانی که
آرگومان
درونیابی
به صراحت
مشخص نشده
باشد؛ برای
جزئیات
بیشتر
دربارهٔ
عملگرهای
دسترسی به
پیکسل به
ادامه
مراجعه
کنید). مقدار
پیشفرض
اولیهٔ آن '0'
است.
* 'boundary': مقدار
شرایط مرزی
پیشفرض
مورد
استفاده
هنگام
خواندن
مقادیر
پیکسلها
با
عملگرهای
دسترسی به
پیکسل (یعنی
زمانی که
آرگومان
شرایط مرزی
به صراحت
مشخص نشده
باشد؛ برای
جزئیات
بیشتر
دربارهٔ
عملگرهای
دسترسی به
پیکسل به
ادامه
مراجعه
کنید). مقدار
پیشفرض
اولیهٔ آن '0'
است.
* آخرین
تصویر
موجود در
فهرست
همواره به
ارزیابیهای
'عبارتها'
اختصاص
دارد، برای
نمونه
توالی G'MIC:
256,128 fill {w}
یک تصویر 256x128
پرشده با
مقدار 256
ایجاد
خواهد کرد.
## توابع و
عملگرهای
برداری:
ارزیاب
ریاضی قادر
به کار با
عناصر
برداری است.
یک تابع
ریاضی
اعمالشده
بر روی یک
آرگومان
برداری،
معمولاً
برداری با
همان بُعد
را
برمیگرداند
که در آن هر
عنصر بردار
ورودی به
تابع
مشخصشده
داده شده
است
(به عنوان
مثال 'abs([-1,2,-3])'
مقدار '[1,2,3]' را
برمیگرداند).
با این حال
توابع و
عملگرهای
مشخصی برای
تعریف یا
محاسبهٔ
عناصر
برداری
وجود دارند:
* عبارت '[a0,a1,...,aN-1]'
یک بردار
'N'بُعدی با
ضرایب
اسکالر
'ak' تعریف
میکند.
* تابع 'vectorN(a0,a1,,...,aN-1)'
همین کار را
انجام
میدهد، با
این تفاوت
که اگر تنها
تعداد کمی
مشخص شده
باشند،
مقادیر 'ak'
به صورت
دورهای
تکرار
میشوند.
* تابع 'vector(#N,a0,a1,,...,aN-1)'
همین کار را
انجام
میدهد، و
میتواند
برای هر
عبارت ثابت
'N' به کار
رود.
* در
عبارتهای
قبلی، خود
مقادیر 'ak'
نیز
میتوانند
بردار
باشند تا در
یک بردار
واحد الحاق
شوند.
* عنصر
اسکالر 'ak'
از یک بردار
'X' با
'X[k]' بازیابی
میشود.
* زیربردار
'[X[p],X[p+s]...X[p+s*(q-1)]]' (با
اندازهٔ 'q')
از یک
بردار 'X' با
'X[p,q,s]' بازیابی
میشود.
* مقایسهٔ
برابری/نابرابری
بین دو
بردار با
عملگرهای
'==' و '!=' انجام
میشود.
* برخی توابع
خاص بردار
را میتوان
روی مقادیر
برداری به
کار برد: 'cross(X,
Y)' (ضرب
خارجی)، 'dot(X,Y)'
(ضرب داخلی)،
'size(X)' (بُعد
بردار)،
'sort(X,_is_increasing,_starting_index,_nb_elts,_size_elt,
_sort_index)' (مقادیر
مرتبشده)،
'reverse(A)' (معکوس
کردن ترتیب
مؤلفهها)،
'map(X,P,_nb_channelsX,_nb_channelsP,_boundary_conditions)'،
'shift(A,_length,_boundary_conditions)' و
'same(A,B,_nb_vals,
_is_case_sensitive)' (آزمون
برابری
بردارها).
* تابع 'normP(u1,...,un)'
نُرم LP بردار
مشخصشده
را محاسبه
میکند ('P' یک
مقدار ثابت
یا 'inf' است،
مانند
نمونه در 'norm1()').
* تابع 'normp(V,_p)'
نُرم Lp بردار
'V' را محاسبه
میکند.
در اینجا، 'p'
میتواند
متغیر باشد.
مقدار
پیشفرض
برای 'p'
برابر 2 است.
* تابع 'unitnorm(V,_p)' یک
نگارش
نرمالشده
'V/normp(V)' از بردار
'V' را
برمیگرداند.
مقدار
پیشفرض
برای 'p'
برابر 2 است.
* تابع
'resize(A,size,_interpolation,_boundary_conditions)'
نگارش
تغییر
اندازه
یافتهٔ
بردار 'A' را
با حالت
درونیابی
مشخصشده
برمیگرداند.
'interpolation'
میتواند {
-1:None (memory content) | 0:None | 1:Nearest
| 2:Average | 3:Linear | 4:Grid | 5:Bicubic | 6:Lanczos }
باشد، و
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic |
3:Mirror } باشد.
* تابع
'find(A,B,_starting_index,_search_step,_max_iterations)'
اندیسی را
که در آن
زیربردار 'B'
در بردار 'A'
ظاهر
میشود (یا
'-1' اگر 'B' در 'A'
وجود
نداشته
باشد)
برمیگرداند.
همچنین
میتوان
آرگومان
'A' را با یک
اندیس
تصویر '#ind'
جایگزین
کرد.
* مشخص کردن
یک عبارت
ریاضی با
مقدار
برداری به
عنوان
آرگومان
دستوری که
روی مقادیر
تصویر عمل
میکند
(مانند 'fill')،
کل محدودهٔ
طیف
تصویر(های)
پردازششده
را به ازای
هر یک از
مختصات
فضایی '(x,y,z)'
تغییر
میدهد. در
این
حالت،
دستور روی
محور 'c' حلقه
نمیزند.##
توابع با
مقادیر
مختلط:
یک بردار
«2»-بُعدی
میتواند
به عنوان یک
عدد مختلط
تفسیر شده و
در این
توابع/عملگرهای
ویژه
استفاده
شود: «**»
(ضرب مختلط)،
«//» (تقسیم
مختلط)، «^^»
(توانرسانی
مختلط)، «**=»
(خود-ضربی
مختلط)، «//=»
(خود-تقسیمی
مختلط)، «^^=»
(خود-توانرسانی
مختلط)،
«cabs()» (قدر
مطلق
مختلط)،
«carg()»
(آرگومان
مختلط)،
«cconj()» (مزدوج
مختلط)،
«cexp()»
(نمایی
مختلط)،
«clog()»
(لگاریتم
مختلط)،
«ccos()»
(کسینوس
مختلط)،
«csin()» (سینوس
مختلط)،
«csqr()» (مربع
مختلط)،
«csqrt()» (ریشه
دوم مختلط)،
«ctan()»
(تانژانت
مختلط)،
«ccosh()»
(کسینوس
هذلولوی
مختلط)،
«csinh()» (سینوس
هذلولوی
مختلط) و
«ctanh()»
(تانژانت
هذلولوی
مختلط).
## توابع با
مقادیر
ماتریسی:
یک بردار
«MN»-بُعدی
میتواند
به عنوان یک
ماتریس «M»
در «N»
تفسیر شده و
در این
توابع/عملگرهای
ویژه
استفاده
شود: «*»
(ضرب ماتریس
در بردار)،
«det(A)»
(دترمینان)،
«diag(V)»
(ماتریس
قطری از یک
بردار)،
«eig(A)»
(مقادیر
ویژه/بردارهای
ویژه)،
«eye(n)»
(ماتریس
همانی n در n)،
«invert(A,_nb_colsA)»
(معکوس
ماتریس)،
«mul(A,B,_nb_colsB)» (ضرب
ماتریس در
ماتریس)،
«qr(A,
_nb_colsA,_is_reduced_form)»،
«rot(u,v,w,angle)»
(ماتریس
دوران
سهبعدی)،
«rot(angle)»
(ماتریس
دوران
دوبعدی)،
«solve(A,B,_nb_colsB)»
(حلکننده
دستگاه خطی A.X
= B)، «svd(A,_nb_colsA)»
(تجزیه
مقدارهای
منفرد)،
«trace(A)» (اثر
ماتریس) و
«transpose(A,
nb_colsA)»
(ترانهاده
ماتریس). در
صورتی که
آرگومان
«nb_colsB» برابر
با
«1» باشد،
میتوان آن
را حذف کرد.
## توابع با
مقادیر
تصویری:
برخی توابع
آرگومانهایی
با مقدار
برداری
میپذیرند
که
نمایانگر
دادههای
تصویر
هستند:
* تابع
«expr(formula,_w,_h,_d,_s,_A)»
برداری با
اندازه
«w*h*d*s» با
مقادیر
تولیدشده
از فرمول
دادهشده
تولید
میکند،
درست مانند
اینکه
تصویری با
ابعاد «(w,h,d,s)»
پر شود. اگر
«A» مشخص
شود،
باید
برداری با
اندازه
«w*h*d*N» باشد
(«N»
میتواند
متفاوت از
«s» باشد).
سپس به
عنوان یک
تصویر مرجع
(با اندازه
«w» در
«h» در «d»
در «N») برای
عبارت
دادهشده
ارسال
میشود.
* تابع
«resize(A,wA,hA,dA,sA,nwA,_nhA,_ndA,_nsA,_interpolation,
_boundary_conditions,_ax,_ay,_az,_ac)» یک
نسخه
گسترشیافته
از تابع
«resize()» است.
این تابع
امکان
تغییر
اندازه
بردار «A»
را، که به
عنوان
تصویری با
اندازه
«(ow,oh,od,os)» در
نظر گرفته
شده، به
تصویری
جدید با
اندازه «(nw,nh,nd,
ns)» با
گزینههای
تغییر
اندازه
تعیینشده
فراهم
میکند.
* تابع
«warp(A,wA,hA,dA,sA,B,wB,hB,dB,sB,_mode,_interpolation,
_boundary_conditions)» نسخه
اعوجاجیافته
(warped) تصویر «A»
(با
اندازه
«(wA,hA,dA,sA)»، که
به عنوان
برداری به
اندازه
«(wA*hA*dA*sA)»
در نظر
گرفته شده
است) توسط
میدان
اعوجاج «B»
(با اندازه
«(wB,hB,dB,sB)») را
برمیگرداند.
تصویر حاصل
دارای
اندازه
«(wB,hB,dB,sA)»
خواهد بود.
این معادل
ارزیاب
ریاضی
برای دستور
warp است.
* تابع
«index(A,P,nb_channelsP,_dithering,_map_colors)»
نسخه
شاخصگذاریشده
تصویر «A»
را بر اساس
نقشه رنگ
«P»
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور index
است.
* تابع
«permute(A,wA,hA,dA,sA,permutation)»
نسخه
جایگشتیافته
تصویر «A»
(با اندازه
«(wA,hA,dA,sA)»، در
نظر
گرفتهشده
به عنوان
برداری به
اندازه
«wA*hA*dA*sA») را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور permute
است.
* تابع
«mirror(A,wA,hA,dA,sA,axes_string)»
نسخه
آینهایشده
تصویر «A»
(با اندازه
«(wA,hA,dA,sA)»، در
نظر
گرفتهشده
به عنوان
برداری به
اندازه
«wA*hA*dA*sA») را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور mirror
است.
* تابع
«cumulate(A,wA,hA,dA,sA,_axes_string)»
نسخه تجمعی
تصویر «A»
(با اندازه
«(wA,hA,dA,sA)»، در
نظر
گرفتهشده
به عنوان
برداری به
اندازه
«wA*hA*dA*sA») را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور cumulate
است.
* تابع
«histogram(A,nb_levels,_min_value,_max_value)»
هیستوگرام
بردار «A»
را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور histogram
است.
* تابع
«equalize(A,nb_levels,_min_value,_max_value)»
نسخه
متعادلشده
بردار «A»
را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور equalize
است.
* تابع
«normalize(A,_min_value,_max_value)»
نسخه
نرمالسازیشده
بردار «A»
را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور normalize
است.
* تابع
«mproj(S,nb_colsS,D,nb_colsD,method,max_iter,max_residual)»
ماتریس «S»
را روی یک
واژهنامه
(ماتریس) «D»
تصویر
میکند. این
معادل
ارزیاب
ریاضی برای
دستور mproj
است.
* تابع
«fft(R,I,w,h,d,s,_'axis')»
تبدیل
فوریه
سریع زوج
مختلط «[R,I]»
را، که به
عنوان
تصاویری با
اندازه «(w,h,
d,s)» در نظر
گرفته
شدهاند،
محاسبه
میکند.
تبدیل
معکوس fft با
تابع مشابه
«ifft()»
محاسبه
میشود. این
توابع
محتوای «R»
و «I» را
درجا
جایگزین
میکنند.
این معادل
ارزیاب
ریاضی برای
دستورهای fft
و ifft است.
* تابع
«shift(A,wA,hA,dA,sA,_dx,_dy,_dz,_dc,_boundary_conditions)»
نسخه
انتقالیافته
بردار «A»
را، که به
عنوان
تصویری به
ابعاد
«(wA,hA,dA,sA)» در
نظر گرفته
شده،
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور
shift است.
* تابع
«noise(A,amplitude,_noise_type)»
نسخه
نویزدار
بردار «A»
را
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور
noise است.
* تابع
«rand(#size,_min_value,_max_value,_pdf,_precision)»
برداری
از مقادیر
تصادفی به
تعداد «size»
برمیگرداند.
این معادل
ارزیاب
ریاضی برای
دستور rand
است.
## دستکاری
رشتهها:
رشتههای
نویسهای
به عنوان
اشیاء
برداری
تعریف
میشوند و
بنابراین
میتوان
آنها را
به همین
صورت
مدیریت کرد.
توابع و
مقداردهندههای
اولیهی
اختصاصی
برای
مدیریت
رشتهها
وجود دارند:
* «['string']» و «'string'»
برداری را
تعریف
میکنند که
مقادیر آن
کدهای
نویسهایِ
«character string»
دادهشده
هستند (برای
مثال «'foo'»
برابر با «[
102,111,111 ]» است).
* «_'character'» کد
اسکی (ASCII)
نویسه
دادهشده
را
برمیگرداند
(برای مثال
«_'A'» برابر
با «65» است).
* یک مورد خاص
برای
رشتههای
خالی رخ
میدهد:
مقادیر هر
دو عبارت
«['']» و «''»
برابر با
«0» است.
* توابع «lowercase()»
و «uppercase()»
رشتهای را
با تمام
نویسهها
به صورت
حروف کوچک
یا بزرگ
برمیگردانند.
* تابع
«s2v(str,_starting_index,_is_strict)»
رشته
«str» را
تجزیه کرده
و مقدار
موجود در آن
را
برمیگرداند.
* تابع
«v2s(expr,_nb_digits,_siz)»
برداری به
اندازه
«siz»
برمیگرداند
که شامل
نمایش
نویسهای
مقادیر
توصیفشده
توسط
عبارت «expr»
است. «nb_digits»
میتواند {
<-1:0-Padding of
integers | -1:Auto-reduced | 0:All | >0:Max number of digits }
باشد.
* تابع
«echo(str1,str2,...,strN)»
الحاق
آرگومانهای
رشتهای
دادهشده
را روی
کنسول چاپ
میکند.
* تابع
«string(_#siz,str1,str2,...,strN)»
برداری
متناظر با
الحاق
آرگومانهای
رشتهای/عددی
دادهشده
تولید
میکند.
##
آرایههای
پویا:
یک آرایه
پویا به
صورت یک
تصویر
یکستونی
(یا خالی)
«[ind]» در
فهرست
تصاویر
تعریف
میشود. این
آرایه
امکان
افزودن یا
حذف عناصر
را فراهم
میکند، در
حالی که
هر عنصر
دارای بُعد
یکسانی است
(که در واقع
تعداد
کانالهای
تصویر
«[ind]» است).
آرایههای
پویا
اندازه خود
را با تعداد
عناصری که
در خود جای
دادهاند
تطبیق
میدهند.
یک آرایه
پویا را
میتوان در
یک عبارت
ریاضی با
استفاده از
توابع
زیر
دستکاری
کرد:
* «da_size(_#ind)»:
تعداد
عناصر
موجود در
آرایه
پویای
«[ind]» را
برمیگرداند.
* «da_back(_#ind)»:
آخرین عنصر
آرایه
پویای
«[ind]» را
برمیگرداند.
* «da_insert(_#ind,pos,elt_1,_elt_2,...,_elt_N)»:
درج «N»
عنصر
جدید «elt_k»
با شروع از
نمایه «pos»
در آرایه
پویای
«[ind]».
* «da_push(_#ind,elt1,_elt2,...,_eltN)»:
درج «N»
عنصر جدید
«elt_k» در
انتهای
آرایه
پویای «[ind]».
* «da_pop(_#ind)»:
همانند
«da_back()»، اما
آخرین
عنصر را نیز
از آرایه
پویای «[ind]»
حذف میکند.
* «da_push_heap(_#ind,elt1,_elt2,...,_eltN)» و
«da_pop_heap(_#ind)» همین
کار را
انجام
میدهند
اما برای یک
آرایه پویا
که به عنوان
یک
ساختار min-heap
(هرم کمینه)
در نظر
گرفته شده
است.
*
«da_insert_n(_#ind,n,pos,elt_1,_elt_2,...,_elt_N)»،
«da_push_n(_#ind,n,elt1,_elt2,...,_eltN)» و
«da_push_heap_n(_#ind,n,
elt1,_elt2,...,_eltN)»
حالتهایی
هستند که
عناصر
دادهشده
را به صورت
متوالی،
«n» بار درج
میکنند.
اگر هیچ
عنصری داده
نشود، «n»
عنصر خالی
درج
میکنند.
* «da_remove(_#ind,_start,_end)»:
حذف عناصری
که بین
نمایههای
«start» و «end»
(شامل
خودشان) در
آرایه
پویای «[ind]»
قرار دارند.
* «da_freeze(_#ind)»:
تبدیل یک
آرایه پویا
به یک تصویر
۱-ستونی با
ارتفاع
«da_size(#ind)».
* مقدار
k-اُمین عنصر
از آرایه
پویای «[ind]»
با «i[_#ind,k]» (اگر
عنصر یک
مقدار
اسکالر
باشد)، یا
«I[_#ind,
k]» (اگر عنصر
یک بردار
باشد)
بازیابی
میشود.
در توابع
بالا،
آرگومان
«#ind»
میتواند
نادیده
گرفته شود
که در این
صورت مقدار
آن «#-1» فرض
میشود.
## عملگرهای
ویژه:
* «;»:
جداکننده
عبارت.
مقدار
بازگرداندهشده
همیشه
آخرین
عبارت
دیدهشده
است. برای
نمونه
عبارت «1;2;pi»
به عنوان
«pi»
ارزیابی
میشود.
* «=»: انتساب
متغیر.
متغیرها در
تجزیهکننده
ریاضی فقط
میتوانند
به مقادیر
عددی
(بردارها یا
اسکالرها)
ارجاع
داشته
باشند. نام
متغیرها به
حروف کوچک و
بزرگ حساس
است. از این
عملگر
همراه با
«;» برای
تعریف
عبارتهای
پیچیدهتر
و قابل
ارزیابی
استفاده
کنید،
مانند
t = cos(x); 3*t^2 + 2*t + 1
این
متغیرها
برای
تجزیهکننده
ریاضی به
صورت محلی
باقی
میمانند و
خارج
از عبارت
ارزیابیشده
قابل
دسترسی
نیستند.
* متغیرهای
تعریفشده
در
تجزیهکننده
ریاضی ممکن
است با
مشخص کردن
کلیدواژه
«const» پیش از
نام متغیر
(مانند 'const foo =
pi/4;')، دارای
ویژگی
ثابت
باشند.
مقدار
اختصاصدادهشده
به چنین
متغیری
باید یک
اسکالر
ثابت باشد.
متغیرهای
ثابت امکان
انواع خاصی
از
بهینهسازیها
را در
کامپایلر
درجا (JIT)
ریاضی
فراهم
میکنند.
## توابع
خاص:
* «addr(expr)»: نشانی
اشارهگر
به عبارت
دادهشده
«expr» را
برمیگرداند.
* «o2c(_#ind,offset,_boundary_conditions)» و
«c2o(_#ind,x,_y,_z,_c,
_boundary_conditions)»:
تبدیل آفست
تصویر به
مختصات
تصویر و
برعکس.
آرگومان
«boundary_conditions»
میتواند { 0:None
| 1:Return
-1 if out-of-range } باشد.
* «fill(target,expr)» یا
«fill(target,index_name,expr)»
متغیر
برداری
«target» را با
استفاده از
عبارت
دادهشده
پر میکند،
برای مثال
«V =
vector16(); fill(V,k,k^2 + k + 1);». این
اساساً
معادل است
با:
«for (index_name = 0, index_name<size(target), ++index_name,
target[index_name] = expr);».
* «fill(target,w,h,d,s,'expr')»
متغیر
برداری
«target» را،
که به عنوان
تصویری به
ابعاد «(w,h,d,s)»
در نظر
گرفته شده،
با استفاده
از عبارت
دادهشده
پر میکند.
* «u(max)» یا
«u(min,max,_include_min,_include_max)»:
مقداری
تصادفی در
بازه «0...max»
یا «min...max» را
با پیروی از
یک توزیع
یکنواخت
برمیگرداند.
هر یک از
نقاط
انتهایی
بازه
میتوانند
در توزیع
گنجانده
شوند
(پیشفرض)
یا نشوند.
* «v(max)» یا
«v(min,max,_include_min,_include_max)»
همین کار را
انجام
میدهند
اما یک عدد
صحیح در
بازه
مشخصشده
برمیگردانند.
* «f2ui(value)» و
«ui2f(value)»: تبدیل
یک عدد صحیح
بزرگ بدون
علامت به یک
مقدار ممیز
شناور منفی
(و برعکس)، تا
بتوان از
ممیزهای
شناور ۳۲
بیتی برای
ذخیره
اعداد صحیح
بزرگ با حفظ
دقت واحد
استفاده
کرد.
*
«i(_a,_b,_c,_d,_interpolation_type,_boundary_conditions)»:
مقدار
پیکسل واقع
در موقعیت
«(a,b,c,d)» در
تصویر فعلی
را در صورت
وجود
برمیگرداند
(در غیر این
صورت «0»).
مقدار
«interpolation_type»
میتواند {
0:Nearest
neighbor | 1:Linear | 2:Cubic } باشد.
مقدار
«boundary_conditions»
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مختصات
نادیدهگرفتهشده
با مقادیر
پیشفرض
خود
جایگزین
میشوند که
به ترتیب
عبارتند از
«x»، «y»،
«z»، «c»،
«interpolation» و
«boundary». برای
مثال
دستور
fill 0.5*(i(x+1)-i(x-1))
مشتق X تصویر
را با یک طرح
تفاضل
محدود
کلاسیک
تخمین
میزند.
*
«j(_dx,_dy,_dz,_dc,_interpolation_type,_boundary_conditions)»
همین
کار را برای
پیکسل واقع
در موقعیت
«(x+dx,y+dy,z+dz,c+dc)»
انجام
میدهد
(دسترسی
به پیکسل
نسبت به
مختصات
فعلی).
* «i[offset,_boundary_conditions]»
مقدار
پیکسل واقع
در «offset» در
بافر تصویر
مربوطه را
برمیگرداند
(یا «0» در
صورتی که
آفست خارج
از محدوده
باشد).
* «j[offset,_boundary_conditions]»
همین کار را
برای آفست
نسبت
به مختصات
پیکسل فعلی
«(x,y,z,c)» انجام
میدهد.
*
«i(#ind,_x,_y,_z,_c,_interpolation,_boundary_conditions)»،
«j(#ind,
_dx,_dy,_dz,_dc,_interpolation,_boundary_conditions)»،
«i[#ind,offset,
_boundary_conditions]» و
«i[offset,_boundary_conditions]»
عبارتهای
مشابهی
هستند که
برای
دسترسی به
مقادیر
پیکسل برای
هر تصویر
شمارهگذاریشده
«[ind]» در
فهرست
استفاده
میشوند.
* «I/J[_#ind,offset,_boundary_conditions]» و
«I/J(_#ind,_x,_y,_z,
_interpolation,_boundary_conditions)»
مانند «i/j[_#ind,offset,
_boundary_conditions]» و
«i/j(_#ind,_x,_y,_z,_c,_interpolation,
_boundary_conditions)» عمل
میکنند،
اما به جای
یک اسکالر
یک بردار
برمیگردانند
(مانند یک
بردار «[ R,G,B ]»
برای
پیکسلی در
«(a,b,c)» در یک
تصویر رنگی).
*
«crop(_#ind,_x,_y,_z,_c,_dx,_dy,_dz,_dc,_boundary_conditions)»
برداری
را
برمیگرداند
که مقادیر
آن از ناحیه
برشخورده
تصویر «[ind]»
(یا
از تصویر
پیشفرض
انتخابشده
در صورتی که
«ind» مشخص
نشده باشد)
به دست
میآید.
ناحیه
برشخورده
از نقطه
«(x,y,z,c)» شروع
میشود و
اندازهای
برابر با
«(dx,dy,dz,dc)» دارد.
در صورت عدم
وجود
ابهام،
آرگومانهای
مختصات و
اندازهها
را میتوان
حذف کرد
(برای مثال
«crop(#ind,x,y,dx,dy)» یک
فراخوانی
معتبر از
این تابع
است).
*
«crop(S,w,h,d,s,_x,_y,_z,_c,_dx,_dy,_dz,_dc,_boundary_conditions)»
همان کار را
انجام
میدهد اما
دادههای
برشخورده
را از یک
بردار «S»،
که به عنوان
تصویری به
ابعاد «(w,h,d,s)»
در نظر
گرفته شده،
استخراج
میکند.
*
«draw(_#ind,S,_x,_y,_z,_c,_dx,_dy,_dz,_dc,_opacity,_opacity_mask,
_max_opacity_mask)» یک
اسپرایت
«S» را در
تصویر «[ind]»
(یا در
تصویر
پیشفرض
انتخابشده
در صورتی که
«ind» مشخص
نشده باشد)
در مختصات
«(x,y,
z,c)» رسم
میکند.
*
«draw(D,w,h,s,d,S,_x,_y,_z,_c,_dx,_dy,_dz,_dc,_opacity,_M,_max_M)»
همان کار را
انجام
میدهد اما
اسپرایت
«S» را در
بردار «D»
که به عنوان
تصویری به
ابعاد «(w,h,d,s)»
در نظر
گرفته شده
رسم میکند.
* «polygon(_#ind,nb_vertices,coords,_opacity,_color)»
یک چندضلعی
توپر را در
تصویر «[ind]»
(یا در تصویر
پیشفرض
انتخابشده
اگر «ind»
مشخص
نشده باشد)
در مختصات
دادهشده
رسم میکند.
اگر «nb_vertices»
برابر با 2
تنظیم
شده باشد،
یک خط منفرد
رسم میکند.
*
«polygon(_#ind,-nb_vertices,coords,_opacity,_pattern,_color)»
یک چندضلعی
با خطوط
پیرامونی
در تصویر
«[ind]» (یا در
تصویر
پیشفرض
انتخابشده
اگر
«ind» مشخص
نشده باشد)
در مختصات
دادهشده و
با الگوی خط
رسم میکند.
اگر
«nb_vertices» برابر
با 2 تنظیم
شده باشد،
یک خط منفرد
رسم میکند.
*
«ellipse(_#ind,xc,yc,radius1,_radius2,_angle,_opacity,_color)»
یک
بیضی توپر
را در تصویر
«[ind]» (یا در
تصویر
پیشفرض
انتخابشده
اگر
«ind» مشخص
نشده باشد)
با مختصات
دادهشده
رسم میکند.
*
«ellipse(_#ind,xc,yc,-radius1,-_radius2,_angle,_opacity,_pattern,
_color)» یک بیضی
با خط
پیرامونی
را در تصویر
«[ind]» (یا در
تصویر
پیشفرض
انتخابشده
در صورتی که
«ind» مشخص
نشده باشد)
رسم میکند.
*
«flood(_#ind,_x,_y,_z,_tolerance,_is_high_connectivity,_opacity,
_color)» یک پر
کردن
ناحیهای (flood
fill) در تصویر
«[ind]» (یا در
تصویر
پیشفرض
انتخابشده
در صورتی که
«ind» مشخص
نشده باشد)
با مختصات
دادهشده
انجام
میدهد. این
معادل
ارزیاب
ریاضی برای
دستور flood
است.
*
«resize(#ind,w,_h,_d,_s,_interp,_boundary_conditions,_cx,_cy,_cz,_cc)»
اندازه یک
تصویر از
فهرست
مربوطه را
با ابعاد و
روش
درونیابی
دادهشده
تغییر
میدهد.
هنگام
استفاده از
این تابع،
باید به جای
متغیرهای
ثابت
مربوطه،
ابعاد (غیر
ثابت) تصویر
را با
استفاده از
توابع
پویای
«w(_#ind)»،
«h(_#ind)»،
«d(_#ind)»،
«s(_#ind)»،
«wh(_#ind)»،
«whd(_#ind)» و «whds(_#ind)»
بازیابی
کنید.
* «if(condition,expr_then,_expr_else)»:
بسته به
مقدار
«condition» که به
صورت { 0:False | other:True }
است، مقدار
«expr_then» یا
«expr_else» را
برمیگرداند.
«expr_else» را
میتوان
حذف کرد که
در این حالت
اگر شرط
برقرار
نباشد «0»
برگردانده
میشود.
استفاده از
عملگر
سهتایی
«condition?expr_then[:expr_else]»
عبارتی
معادل
ارائه
میدهد.
برای مثال،
دستورهای
G'MICfill if(!(x%10),255,i)
و
fill x%10?i:255
هر دو، خطوط
عمودی خالی
روی هر
دهمین ستون
یک تصویر
رسم
میکنند.
* 'do(expression,_condition)'
ارزیابی 'expression'
را تا زمانی
که 'condition' صفر
(محو) شود
تکرار
میکند (یا
اگر هیچ 'condition'
مشخص نشده
باشد، تا
زمانی که به
دستور 'break()'
برخورد کند).
برای
نمونه،
عبارت:
if(N<2,N,n=N-1;F0=0;F1=1;do(F2=F0+F1;F0=F1;F1=F2,n=n-1))
مقدار N-اُم
دنباله
فیبوناچی
را برای 'N>=0'
برمیگرداند
(بهعنوان
مثال، '46368'
برای 'N=24').
دستور 'do(expression,condition)'
همواره
عبارت را
حداقل
یکبار
ارزیابی
میکند،
سپس شرط
حلقه را
بررسی
مینماید.
پس از
پایان،
آخرین
مقدار 'expression'
را
برمیگرداند.
* 'for(init,condition,_procedure,body)'
ابتدا
عبارت 'init' را
ارزیابی
میکند،
سپس تا
زمانی که 'condition'
برقرار
باشد (یعنی
صفر نباشد)،
بهطور
مکرر 'body' (و در
صورت مشخص
شدن، به
دنبال آن
'procedure') را
ارزیابی
میکند.
ممکن است
هیچ تکراری
انجام نشود
که در این
صورت تابع
مقدار 'nan' را
برمیگرداند.
در غیر این
صورت،
آخرین
مقدار 'body' را
برمیگرداند.
برای
نمونه،
عبارت:
if(N<2,N,for(n=N;F0=0;F1=1,n=n-1,F2=F0+F1;F0=F1;F1=F2))
مقدار 'N'-اُم
دنباله
فیبوناچی
را برای 'N>=0'
برمیگرداند
(بهعنوان
مثال، '46368'
برای 'N=24').
* 'while(condition,expression)'
دقیقاً
مشابه
'for(init,condition,expression)' بدون
تعیین
عبارت
مقداردهی
اولیه است.
* توابع 'repeat(nb_iters,expr)'
یا 'fill(nb_iters,iter_name,expr)'
تعداد 'nb_iters'
تکرار از
عبارت
دادهشده
'expr' را اجرا
میکنند،
مانند 'V = vector16();
repeat(16,k,V[k] = k^2 + k + 1);'. این
دستور
اساساً
معادل است
با: 'for (iter_name = 0, iter_name<nb_iters,
++iter_name, expr);'.
* توابع 'break()' و
'continue()'
بهترتیب
اجرای حلقه
یا بلوک
فعلی را
پایان داده
یا ادامه
میدهند.
* تابع 'fsize('filename')'
اندازه 'filename'
دادهشده
را
برمیگرداند
(یا اگر فایل
وجود
نداشته
باشد، '-1').
* تابع 'date(attr,'path')'
ویژگی
تاریخ را
برای 'path'
دادهشده
(فایل یا
دایرکتوری)
برمیگرداند،
که در آن 'attr'
برابر با { 0:Year |
1:Month | 2:Day | 3:Day of week | 4:Hour | 5:Minute | 6:Second }،
یا برداری
از آن
مقادیر است.
* تابع 'date(_attr)'
ویژگی
دادهشده
را برای
تاریخ فعلی
(محلی)
برمیگرداند
(ویژگیها
عبارتند از
{ 0...6:Same meaning as above | 7:Milliseconds }).
* تابع
'epoch(_year,_month,_day,_hour,_minute,_second)' یک
تاریخ را به
Epoch تبدیل
میکند. اگر
هیچ
آرگومانی
مشخص نشده
باشد، Epoch
فعلی
برگردانده
میشود.
* دستورات
'print(expr1,expr2,...)' یا 'print(#ind)'
مقدار
عبارات
دادهشده
(یا اطلاعات
تصویر) را در
کنسول چاپ
میکنند و
مقدار
آخرین
عبارت (یا در
صورت تصویر
بودن، 'nan') را
برمیگردانند.
تابع 'prints(expr)'
همچنین
رشته متشکل
از کدهای
نویسهای
تعریفشده
توسط عبارت
دارای
مقدار
برداری را
چاپ میکند
(مانند 'prints('Hello')').
* دستور 'debug(expression)'
اطلاعات
اشکالزدایی
دقیقی را
درباره
توالی
عملیات
انجامشده
توسط
تجزیهکننده
ریاضی برای
ارزیابی
عبارت چاپ
میکند (و
مقدار آن را
برمیگرداند).
* توابع 'display(_X,_w,_h,_d,_s)'
یا 'display(#ind)'
محتوای
بردار 'X' (یا
تصویر
دادهشده)
را نمایش
میدهند و
منتظر
رویدادهای
کاربر
میمانند.
اگر هیچ
آرگومانی
داده نشود،
یک تصویر
لحظهای از
حافظه محیط
تجزیهکننده
ریاضی
نمایش داده
میشود.
* توابع 'begin(expression)'
و 'end(expression)'
عبارات
دادهشده
را فقط
یکبار،
بهترتیب
در ابتدا و
انتهای
فرایند
ارزیابی،
ارزیابی
میکنند؛
حتی زمانی
که
ارزیابیهای
چندگانه
مورد نیاز
باشد (مانند
'fill ">begin(foo = 0); ++foo"').
* دستور
'copy(dest,src,_nb_elts,_inc_d,_inc_s,_opacity)' یک
بلوک کامل
حافظه شامل
'nb_elts' عنصر را
با شروع از
مقدار مبدأ
'src' به مقصد
مشخصشده
'dest' کپی
میکند،
همراه با
گامهای
افزایشی که
بهترتیب
با 'inc_d' و 'inc_s'
برای
اشارهگرهای
مقصد و مبدأ
تعیین
میشوند.
* دستور 'stats(_#ind)'
بردار
آماری
تصویر جاری
'[ind]' را
برمیگرداند،
یعنی بردار
'[ im,iM,ia,iv,xm,ym,zm,cm,xM,yM,zM,cM,is,ip,in ]' (۱۵
مقدار).
* دستور 'stats(X,w,h,d,s)'
بردار
آماری
بردار 'X' را
که
بهعنوان
تصویری با
اندازه '(w,h,d,s)'
در نظر
گرفته شده
است،
برمیگرداند.
* دستور 'ref(expr,a)'
به عبارت
دادهشده
'expr' با نام
متغیر 'a'
ارجاع
میدهد.
* دستور 'unref(a,b,...)'
ارجاعها
به
متغیرهای
نامگذاریشده
در
آرگومانها
را حذف
میکند.
* دستور 'breakpoint()'
یک نقطه
توقف (breakpoint)
محاسباتی
ممکن را درج
میکند (در
رابط خط
فرمان
کاربردی
ندارد).
* عبارت '_(comment) expr'
صرفاً
عبارت 'expr' را
برمیگرداند
(برای درج
توضیحات
درونخطی
در عبارات
ریاضی مفید
است).
* دستور 'run('pipeline')'
پایپلاین
G'MIC را طوری
اجرا
میکند که
گویی خارج
از عبارت در
حال
ارزیابی
فراخوانی
شده است.
* دستور 'set('variable_name',A)'
متغیر G'MIC با
نام '$variable_name' را
با مقدار
عبارت 'A'
مقداردهی
میکند. اگر
'A' یک متغیر
برداری
باشد، فرض
میشود که
نمایانگر
یک رشته است.
* دستور
'store('variable_name',A,_w,_h,_d,_s,_is_compressed)'
دادههای
بردار 'A' را
بهصورت یک
تصویر '(w,h,d,s)' به
متغیر G'MIC با
نام '$variable_name'
منتقل
میکند.
بدین
ترتیب،
دادهها در
خارج از
عبارت
ریاضی در
دسترس
خواهند بود
(معادل
استفاده از
دستور
معمولی store،
اما
مستقیماً
در عبارت
ریاضی).
* دستور
'get('variable_name',_size,_return_as_string)'
مقدار
متغیر را
بهصورت
برداری با
'size' مقدار،
یا بهصورت
یک اسکالر
(اگر 'size' صفر
بوده یا
مشخص نشده
باشد)
برمیگرداند.
* دستور 'name(_#ind,size)'
برداری به
اندازه 'size'
برمیگرداند
که مقادیر
آن کدهای
نویسهای
نام تصویر
'[ind]' هستند (یا
در صورت
مشخص نشدن
'ind'، تصویر
پیشفرض
انتخابشده).
* دستور
'correlate(I,wI,hI,dI,sI,K,wK,hK,dK,sK,_boundary_conditions,_is_normalized,_channel_mode,_xcenter,_ycenter,_zcenter,_xstride,_ystride,_zstride,_xdilation,_ydilation,_zdilation,_xoffset,_yoffset,_zoffset,_xsize,_ysize,_zsize)'
همبستگی
بازشده
بهصورت
بردار از
تصویر 'I' با
اندازه '(wI,hI,dI,sI)'
با هسته 'K'
با اندازه
'(wK,hK,dK,sK)' را
برمیگرداند
(معنای سایر
آرگومانها
همانند
دستور 'correlate'
است). تابع
مشابه 'convolve(...)'
نیز برای
محاسبه
کانولوشن
بین 'I' و 'K'
تعریف شده
است.
## ماکروهای
تعریفشده
توسط
کاربر:
* توابع
ماکروی
سفارشی را
میتوان در
یک عبارت
ریاضی با
استفاده از
عملگر
انتساب '='
تعریف کرد،
مانند:
foo(x,y) = cos(x + y); result = foo(1,2) + foo(2,3)
* تلاش برای
بازتعریف
یک تابع
توکار
(مانند 'abs()')
هیچ اثری
ندارد.
*
سربارگذاری
ماکروها با
تعداد
آرگومانهای
مختلف
امکانپذیر
است.
بازتعریف
یک ماکروی
قبلاً
تعریفشده
با همان
تعداد
آرگومان،
تعریف قبلی
آن را لغو
میکند.
* توابع
ماکرو توسط
ارزیاب
ریاضی
بهعنوان
ماکرو
پردازش
میشوند.
باید از
فراخوانی
آنها با
آرگومانهایی
که خود
نتیجه
انتساب یا
خودعملیاتی
هستند
خودداری
کنید. برای
نمونه:
foo(x) = x + x; z = 0; foo(++z)
به جای
مقدار مورد
انتظار '2'،
مقدار '4' را
برمیگرداند.
* هنگام
جایگزینی،
آرگومانهای
ماکرو درون
پرانتز
قرار
میگیرند،
مگر اینکه
علامت
نامبرساین
'#' درست قبل
یا بعد از
نام
آرگومان
قرار گرفته
باشد. برای
نمونه،
عبارت:
foo(x,y) = x*y; foo(1+2,3)
مقدار '9' را
برمیگرداند
(چرا که
بهصورت '(1+2)*(3)'
جایگزین
میشود)، در
حالی که
عبارت:
foo(x,y) = x#*y#; foo(1+2,3)
مقدار '7' را
برمیگرداند
(چرا که
بهصورت '1+2*3'
جایگزین
میشود).
* علامتهای
نامبرساین
'#' که بین
آرگومانهای
ماکرو ظاهر
میشوند،
در واقع
بهعنوان
جداکنندههای
خالی عمل
میکنند.
میتوان از
آنها برای
اجبار به
جایگزینی
آرگومانهای
ماکرو در
مکانهای
غیرمعمول
استفاده
کرد،
مانند:
str(N) = ['I like N#'];
* ماکروهایی
با
آرگومانهای
متغیر (variadic) را
میتوان با
تعیین یک
نام
آرگومان
منفرد به
دنبال '...'
تعریف کرد.
برای
نمونه:
foo(args...) = sum([ args ]^2);
ماکرویی را
تعریف
میکند که
مجموع
مربعات
آرگومانهایش
را
برمیگرداند؛
بنابراین
'foo(1,2,3)' مقدار '14'
و 'foo(4,5)' مقدار
'41' را
برمیگرداند.
## ارزیابی
چندنخی و
درجا (in-place):
* اگر تصاویر
شما به
اندازه
کافی بزرگ
باشند و
چندین هسته
پردازنده
در دسترس
داشته
باشید،
ممکن است
عبارت
ریاضی
ارسالشده
به دستورات
'fill'، 'eval' یا 'input'
بتواند
بهصورت
موازی با
استفاده از
چندین نخ
محاسباتی
ارزیابی
شود.
* نرمافزار
G'MIC تلاش
میکند
موازیپذیر
بودن یا
امکان
ارزیابی
درجا (in-place) یک
عبارت را
بهطور
خودکار
تشخیص دهد
(در غیر این
صورت، یک
رونوشت
موقت از
تصویر
تخصیص
مییابد). با
این حال،
میتوان با
آغاز کردن
عبارت
ریاضی برای
دستورات 'fill'
یا 'eval' با یک
نویسه
منفرد، این
تشخیص
خودکار را
نادیده
گرفت؛
نویسهای
که
میتواند
یکی از
موارد زیر
باشد:
- '*': ارزیابی
عبارت
بهصورت
موازی،
احتمالاً
با استفاده
از یک
رونوشت
موقت تصویر.
- ':': ارزیابی
عبارت
بهصورت
موازی، اما
بهصورت
درجا.
- '+': ارزیابی
عبارت در یک
نخ منفرد،
احتمالاً
با استفاده
از یک
رونوشت
موقت تصویر
(به ترتیب خط
پویش - scanline).
- '>': ارزیابی
عبارت در یک
نخ منفرد،
اما
بهصورت
درجا (به
ترتیب خط
پویش).
- '<': ارزیابی
عبارت در یک
نخ منفرد،
اما
بهصورت
درجا (به
ترتیب
معکوس خط
پویش).
* توجه داشته
باشید که
بسته به حجم
دادههای
مورد
پردازش،
ارزیابیهای
موازی ممکن
است کندتر
از
ارزیابیهای
تکنخی
باشند (برای
نمونه برای
تصاویر
کوچک).
* در
ارزیابیهای
موازی،
تابع 'critical(expr)'
اجرای
زیرعبارت
دادهشده
'expr' را در هر
لحظه به یک
نخ منفرد
محدود
(سریال)
میکند.
* توابع 'begin_t(expr)' و
'end_t(expr)' عبارت
دادهشده
را یکبار
به ازای هر
نخ در حال
اجرا
(بنابراین
احتمالاً
چندین بار)
در ابتدا و
انتهای
فرایند
ارزیابی
اجرا
میکنند.
* دستور 'merge(variable,operator)'
مشخص
میکند که
پس از پایان
محاسبات
تمامی
نخها،
مقادیر
محلی نخها
باید با
عملگر
دادهشده
ادغام شوند.
* عبارات
'i(_#ind,x,_y,_z,_c)=value'،
'j(_#ind,x,_y,_z,_c)=value'، 'i[_#ind,offset]=value'
و 'j[_#ind,offset]=value'
مقدار یک
پیکسل را در
مکانی غیر
از مکان
فعلی در
تصویر '[ind]' (یا
در صورت حذف
آرگومان
'#ind'، در
تصویر جاری)
تعیین
میکنند؛
چه با
مختصات/آفستهای
سراسری (با
'i(...)' و 'i[...]') یا
بهصورت
نسبی نسبت
به موقعیت
فعلی '(x,y,z,c)' (با
'j(...)' و 'j[...]'). این
عبارات
همواره 'value'
را
برمیگردانند.
10. Adding Custom Commands
----------------------
* دستورات
سفارشی
جدید را
میتوان
توسط کاربر
و از طریق
استفاده از
فایلهای
دستورات
سفارشی G'MIC
اضافه کرد.
* یک فایل
دستور، یک
فایل متنی
ساده است که
هر خط آن با
یکی از
موارد زیر
آغاز
میشود:
command_name: command_definition
یا
command_definition (continuation)
* در هنگام
راهاندازی،
G'MIC فایل
دستور
کاربر '$HOME/.gmic'
(در Unix) یا
'%USERPROFILE%ser.gmic' (در Windows)
را بهطور
خودکار درج
میکند.
ابزار خط
فرمان 'gmic' در
صورت تعریف
شدن دستور
'cli_start'، آن را
بهطور
خودکار
اجرا
میکند.
* نامهای
دستورات
سفارشی
باید از
مجموعه
نویسههای
'[a-zA-Z0-9_]'
استفاده
کنند و
نمیتوانند
با یک عدد
آغاز شوند.
* هر عبارت '#
comment' که در یک
فایل
دستورات
سفارشی
یافت شود،
صرفنظر از
موقعیت آن
در خط، توسط
تجزیهکننده
G'MIC نادیده
گرفته
میشود.
* در یک دستور
سفارشی،
این '$-expressions'
شناخته شده
و جایگزین
میشوند:
- '$*' با یک
رونوشت
دقیق (verbatim) از
رشته
آرگومانهای
دادهشده
جایگزین
میشود
(شامل
آرگومانهایی
که روی
مقادیر
پیشفرض
تنظیم
شدهاند
نمیشود).
- '$"*"' با
توالی
آرگومانهای
دادهشده
که با کاما
',' جدا
شدهاند و
هرکدام در
دابلکوتیشن
قرار دارند
جایگزین
میشود
(شامل
آرگومانهایی
که به
مقادیر
پیشفرض
تنظیم
شدهاند
نیز میشود).
- '$#' با
بیشترین
نمایه
آرگومانهای
شناختهشده
(چه توسط
کاربر مشخص
شده باشند
یا در دستور
سفارشی به
مقدار
پیشفرض
تنظیم شده
باشند)
جایگزین
میشود.
- '$[]' با فهرست
نمایههای
تصویر
انتخابشده
که در
فراخوانی
دستور مشخص
شدهاند
جایگزین
میشود.
- '$?' با یک
نسخه قابل
چاپ از '$[]'
برای
استفاده در
توضیحات
دستورات
جایگزین
میشود.
- '$i' و '${i}' هر دو
با آرگومان
'i'-اُم
جایگزین
میشوند.
نمایههای
منفی مانند
'${-j}' مجاز
هستند و به
'j'-اُمین
آرگومان از
آخر اشاره
دارند. '$0' با
نام دستور
سفارشی
جایگزین
میشود.
- '${i=default}' با
مقدار '$i' (در
صورت تعریف
شدن) یا در
غیر این
صورت با
مقدار جدید
تنظیمشده
روی 'default'
جایگزین
میشود ('default'
میتواند
خود یک '$-expression'
نیز باشد).
- '${subset}' با
مقادیر
آرگومانها
(جداشده با
کاما ',') از
یک
زیرمجموعه
آرگومان
جایگزین
میشود.
برای
نمونه،
عبارت '${2--2}' با
تمامی
آرگومانهای
دستور به جز
اولین و
آخرین
آرگومان
جایگزین
میشود.
عبارت '${^0}'
سپس با
تمامی
آرگومانهای
دستور
فراخوانیشده
جایگزین
میشود (در
صورتی که
تمام
آرگومانها
واقعاً
مشخص شده
باشند،
معادل '$*'
است).
- '$=var' با
مجموعهای
از
دستورالعملها
جایگزین
میشود که
هر آرگومان
'$i' را به
متغیر
نامگذاریشده
'var$i' انتساب
میدهند (به
ازای i در '[0...$#]').
این ویژگی
بهویژه
زمانی
کاربرد
دارد که یک
دستور
سفارشی
بخواهد
تعداد
متغیری از
آرگومانها
را مدیریت
کند.
نامهای
متغیرها
باید از
مجموعه
نویسههای
'[a-zA-Z0-9_]'
استفاده
کنند و
نمیتوانند
با یک عدد
آغاز شوند.
* این '$-expressions' خاص
برای
دستورات
سفارشی
همواره
جایگزین
میشوند،
حتی درون
موارد
دارای
دابلکوتیشن
یا زمانی که
علامت دلار
'$' با یک
بکاسلش '$'
اسکیپ شده
باشد. برای
جلوگیری از
جایگزینی،
یک رشته
دابلکوتیشن
خالی درست
بعد از '$'
قرار دهید
(مانند '$""1').
* هنگام
فراخوانی
یک دستور
سفارشی،
میتوان با
جایگزین
کردن
آرگومانها
با کاما ','
از مشخص
کردن آنها
صرفنظر
کرد، مانند
عبارت
flower
,,3آرگومانهای
حذفشده
روی مقادیر
پیشفرض
خود تنظیم
میشوند،
که
بنابراین
باید به
طور صریح در
کد دستور
سفارشی
مربوطه (با
استفاده از
عبارتهای
آرگومان
پیشفرض
مانند '${1=default}')
تعریف
گردند.
* اگر یک
آرگومان
شمارهدارِ
الزامی در
یک دستور
سفارشی
فاقد مقدار
باشد،
خطایی
توسط مفسر G'MIC
ایجاد
میشود.
* تخصیص
فراخوانی
یک '+command' با
تعریف آن به
صورت زیر
امکانپذیر
است:
+command_name: command_definition
* یک تخصیص با
+- نسبت به
تعریف
معمول
دستور، در
حالتی که
دستور با یک
پیشوند
'+' فراخوانی
شود،
اولویت
دارد.
* هنگامی که
تنها یک
تخصیص با +-
از یک دستور
تعریف شده
باشد،
فراخوانی
'command' در واقع
معادل '+command'
خواهد بود.
11. فهرست
دستورها (List of
Commands)
----------------
تمام
دستورهای
موجود در G'MIC
در زیر بر
اساس
دستهبندی
فهرست
شدهاند.
آرگومانی
که در
براکتهای
مربعی '[]'
محصور شده
یا با '_'
آغاز
میشود
اختیاری
است، مگر
زمانی که
نشاندهنده
یک تصویر
موجود '[image]'
باشد، که در
آن 'image'
میتواند
یک شماره
شاخص یا یک
نام تصویر
باشد. در این
حالت،
نویسههای
'[]'
هنگام
نوشتن این
مورد
اجباری
هستند. توجه
داشته
باشید تمام
تصاویری که
به عنوان
نمونه
در این
مستندات
مرجع
استفاده
شدهاند،
قبل از
نمایش در
محدوده '[0, 255]'
نرمالسازی
شدهاند.
اگر
میخواهید
تصاویر را
با همان
ظاهرِ
نشاندادهشده
در کدهای
نمونه
ذخیره و
مشاهده
کنید، ممکن
است لازم
باشد این
کار را
صریحاً
انجام دهید
(دستور 'normalize 0,255').
مثالهای
همراه این
«فهرست
دستورها»
کاربرد
زبان G'MIC را
نشان
میدهند
و
همانگونه
نوشته
شدهاند که
در یک دستور
سفارشی
ظاهر
میشوند.
گرچه برخی
از مثالها
ممکن است در
صورت وارد
شدن مستقیم
در خط فرمان
شل کار
کنند، اما
هیچ تضمینی
وجود
ندارد. در
این
مثالها
تلاشی برای
گریز دادن (escape)
نویسههای
خاص که توسط
بسیاری از
شلها رزرو
شدهاند
صورت
نگرفته
است.
11.1.
گزینههای
عمومی (Global Options)
--------------
debug (+):
فعالسازی
حالت
اشکالزدایی
(دیباگ).
هنگام فعال
بودن، مفسر
G'MIC بسیار
پرگوتر شده
و پیامهای
بیشتری
درباره
وضعیت
داخلی خود
در خروجی
استاندارد
(stdout) چاپ
میکند.
این گزینه
عمدتاً
برای
توسعهدهندگان
و برای
گزارش
باگهای
احتمالی
مفسر در نظر
گرفته شده
است.
h:
میانبُری
برای دستور
'help'.
help:
command |
(no arg)
نمایش
راهنما
برای تمام
دستورها،
یا برای یک
دستور
مشخص، سپس
خروج.
(معادل
دستور
میانبُر
'h').
version:
نمایش
شماره نسخه
فعلی در stdout.
11.2. ورودی /
خروجی (Input / Output)
--------------
camera (+):
_camera_index>=0,_nb_frames>0,_skip_frames>=0,_capture_width>=0,_capture_height>=0
درج یک یا
چند فریم از
دوربین
مشخصشده.
هنگامی که
'nb_frames==0' باشد،
جریان
دوربین به
جای
تصویربرداری
از
فریمهای
جدید آزاد
میشود.
این دستور
نیازمند
ویژگیهایی
از
کتابخانه OpenCV
است (که به
طور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'camera_index=0' (دوربین
پیشفرض)،
'nb_frames=1'، 'skip_frames=0' و
'capture_width=capture_height=0'
(اندازه
پیشفرض).
m (+):
میانبُری
برای دستور
'command'.
command (+):
_add_debug_info={ 0:No | 1:Yes },{ filename | http[s]://URL |
"string" }
وارد کردن
دستورهای
سفارشی G'MIC از
فایل، URL یا
رشته
مشخصشده.
(معادل
دستور
میانبُر
'm').
دستورهای
واردشده
بلافاصله
پس از
فراخوانی
'command' در دسترس
هستند.
نام فایل
مشخصشده
نباید شامل
دونقطه ':'
باشد.
مقدار
پیشفرض:
'add_debug_info=1' (به جز
برای یک
آرگومان "string"
که در آن
صورت 'add_debug_info=0'
است).
مثال:
[#1] image.jpg command "foo : mirror y deform $""1"
+foo[0] 5 +foo[0] 15
compress_to_keypoints:
_method,_max_keypoints>=0,_err_avg[%]>=0,_err_max[%]>=0,_"err_command"
فشردهسازی
هر یک از
تصاویر
انتخابشده
به
مجموعهای
از نقاط
کلیدی که
بعداً
میتوان با
دستور decompress_from_keypoints
آنها را از
حالت فشرده
خارج کرد.
توجه: این
نوع
فشردهسازی
تنها برای
تصاویری با
محتوای
بسیار نرم و
یکدست مؤثر
است.
'method'
میتواند { 0:PDE
| 1:RBF } باشد.
مقدار '2' را
به 'method' اضافه
کنید تا از
مرحله حذف
نقاط
صرفنظر
شود.
* 'max_keypoints' حداکثر
تعداد نقاط
کلیدی
تولیدشده
توسط روش
فشردهسازی
است. اگر
'max_keypoints<0' باشد،
هنگام
رسیدن به
حداکثر
تعداد نقاط
کلیدی،
مرحله حذف
انجام
نمیشود.
'max_keypoints=0' به معنی
'no limits' (بدون
محدودیت)
است.
* 'err_avg' میانگین
خطای
فشردهسازی
مطلوب است.
* 'err_max' حداکثر
خطای
فشردهسازی
نقطهای
مطلوب است.
* 'err_command' کد
دستوری است
که دو تصویر
'[reference]' و '[compressed]' را
ورودی
گرفته و یک
نقشه خطای
منفرد را به
عنوان
آخرین
تصویر
محاسبه
میکند.
مقادیر
پیشفرض:
'method=3'، 'max_keypoints=0'،
'err_avg=1%'، 'err_max=5%' و 'err_command=-.
[0] norm.'
createdir (+):
force_overwrite={ 0:No | 1:Yes },directory_path_1,_directory_path_2,...
ایجاد یک یا
چند
دایرکتوری
جدید 'directory_path_k'
روی سیستم
فایل.
اگر یک مسیر
دایرکتوری
مشخصشده
خود شامل
چند
زیردایرکتوری
باشد، در
صورت لزوم
همگی ایجاد
میشوند.
مقدار
پیشفرض:
'force_overwrite=1'.
cursor (+):
_mode = { 0:hide | 1:show }
نمایش یا
پنهان کردن
مکاننمای
ماوس برای
پنجرههای
نمایش فوری
انتخابشده.
گزینش
دستور (در
صورت وجود)
به جای
شاخصهای
تصویر،
نشاندهنده
شاخصهای
پنجره
نمایش فوری
است.
مقدار
پیشفرض:
'mode=1'.
delete (+):
filename1[,filename2,...]
حذف
فایلها یا
دایرکتوریهای
مشخصشده
روی دیسک.
چندین نام
فایل باید
با کاما از
هم جدا
شوند.
d:
میانبُری
برای دستور
'display'.
display:
نمایش
تصاویر
انتخابشده
در یک پنجره
تعاملی.
(معادل
دستور
میانبُر
'd').
هنگام
فراخوانی
با پیشوند '+'
(یعنی '+display')،
دستور
پیامهای
گزارش خود
را به جای 'stderr'
روی 'stdout'
ارسال
میکند.
پنجره
نمایش
شماره 0 در
صورت باز
بودن، به
عنوان
پنجره
پیشفرض
نمایش
استفاده
میشود.
کنترلهای
موجود در
زیر نشان
داده
شدهاند (که
در آن 'LMB' =
کلید چپ
ماوس، 'RMB' =
کلید راست
ماوس، 'MMB' =
کلید میانی
ماوس و
'MW' = چرخ ماوس
است).
* نوار
پیمایش
بندانگشتی:
'TAB':
نمایش/پنهان
کردن
بندانگشتیها
- 'LMB': انتخاب
بندانگشتی
یا تغییر
مکان نوار
بندانگشتی -
'0'-'9'، 'ARROWS'
(اختیاراً
'+SHIFT')، 'B'، 'BACKSPACE'،
'C'، 'E'، 'END'،
'H'، 'HOME'، 'SPACE':
پیمایش و
انتخاب
بندانگشتیها
(در صورت
قرار داشتن
نشانگر
ماوس خارج
از نوار
بندانگشتی،
کلید 'CTRL' را
اضافه
کنید).
* نمای
تصویر:
'LMB' یا 'MMB':
جابجایی
تصویر (Pan) - 'RMB'
یا 'MW':
بزرگنمایی
تصویر (Zoom) - 'ARROWS'
(اختیاراً
'+SHIFT')، 'HOME'، 'END':
تغییر نمای
دید - 'A':
تغییر
وضعیت رندر
آلفا - 'C':
مرکز کردن
نما - 'E': رفتن
به گوشه
پایین-راست -
'RETURN':
بازنشانی
نما -
'G': تغییر
وضعیت خطوط
شبکه - 'H':
رفتن به
گوشه
بالا-چپ - 'K':
تغییر رنگ
پسزمینه -
'M': تغییر
وضعیت نمای
سهبعدی - 'N':
تغییر
وضعیت
نرمالسازی
- 'P': چاپ
اطلاعات
مربوط به
پیکسل
تصویر فعلی
در 'stdout' - 'PAGEUP' یا
'PAGEDOWN':
بالا/پایین
بردن کانال
پایه -
'R': چرخاندن
تصویر - 'T':
رسم به صورت
نمودار
تکبُعدی -
'V': برش (Crop)
تصویر - 'Z':
تغییر ضریب
بزرگنمایی
- '0'-'9': تنظیم
ضریب
بزرگنمایی.
* نمای مش
سهبعدی:
'LMB': چرخش مش -
'CTRL+LMB' یا 'MMB':
جابجایی مش -
'RMB':
بزرگنمایی
مش - 'A': تغییر
وضعیت
محورها - 'D':
تغییر
وضعیت
جهت وجهها -
'F': تغییر
فاصله
کانونی - 'J':
شروع/توقف
پویانمایی -
'K': تغییر
رنگ
پسزمینه -
'O': تغییر
حالت خطوط
دور (Outline) -
'P': چاپ
ماتریس
وضعیت
سهبعدی در
'stdout' - 'R': تغییر
حالت رندر -
'T': تغییر
حالت رندر
حرکتی - 'X':
نمایش/پنهان
کردن
جعبه
محصورکننده
(Bounding-box) - 'U': تغییر
حالت
پویانمایی -
'Z': تغییر
وضعیت z-buffer.
* ویژه
تصاویر
دوبُعدی:
'CTRL+LMB': گزینش
مستطیلی.
* ویژه
تصاویر
حجمی
سهبعدی:
'CTRL+MW': جابجایی
در امتداد
محور
متعامد - 'X':
بازنشانی
چیدمان
ناحیه.
* اندازه
پنجره،
تزئینات و
ورودی/خروجی
دادهها:
'CTRL+C': کاهش
اندازه
پنجره - 'CTRL+D':
افزایش
اندازه
پنجره - 'CTRL+F':
تغییر
وضعیت
تمامصفحه -
'CTRL+I': تغییر
وضعیت
برچسب
اطلاعات
- 'CTRL+O': ذخیره
رونوشت
تصویر به
عنوان یک
فایل '.gmz' - 'CTRL+L':
ذخیره
رونوشت
فهرست
تصاویر به
عنوان فایل
'.gmz' - 'CTRL+S': ذخیره
نماگرفت به
عنوان فایل
'.png' - 'CTRL+W':
شروع/توقف
ضبط پنجره -
'CTRL+X': تغییر
وضعیت
مکاننما.
* متغیرهای
پیکربندی:
پیکربندی
نمایشگر را
میتوان با
مقداردهی
متغیرهای
زیر تنظیم
کرد:
- '_display_selected' یک عدد
صحیح یا یک
نام تصویر
است که مشخص
میکند
کدام تصویر
به طور
پیشفرض
انتخاب شود.
- '_display_alpha'
میتواند { 0:Off
| 1:On | 2:Over black | 3:Over gray | 4:Over white }
باشد (مقدار
پیشفرض: '0').
- '_display_background'، یک
عدد صحیح در
بازه [ 0,9 ]
(مقدار
پیشفرض: '3').
- '_display_cursor'
میتواند { 0:Off
| 1:On (2D only) | 2:On (+3D volumetric images) }
باشد (مقدار
پیشفرض: '1').
- '_display_is_grid'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '1').
- '_display_is_info'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '1').
- '_display_normalization'
میتواند {
-1:Auto | 0:Off | 1:Cut | 2:Stretch channelwise | 3:Stretch global | 4:
stretch (global-once) }
باشد (مقدار
پیشفرض: '-1').
- '_display_print_images'
میتواند { 0:Off
| N>0 } باشد
(مقدار
پیشفرض: '5').
این متغیر
حداکثر
تعداد 'N'
تصویر را
تعیین
میکند که
اطلاعات
آنها در
ابتدا روی 'stderr'
یا 'stdout' چاپ
میشود.
- '_display_3d_is_rendered'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '1').
- '_display_3d_rendering_mode'
میتواند { 0:Dots
| 1:Wireframe | 2:Flat | 3:Flat-shaded | 4:Gouraud-shaded | 5=Phong-shaded
} باشد
(مقدار
پیشفرض: '4').
- '_display_3d_outline_mode'
میتواند {
0:No-outline | 1:Black-outline | 2:Gray-outline | 3:Red-outline |
4:Green-outline |
5:Blue-outline | 6:White-outline } باشد
(مقدار
پیشفرض: '0').
- '_display_3d_motion_rendering_mode'
میتواند {
-1:Bounding-box | 0:Dots | 1:Wireframe | 2:Flat | 3:Flat-shaded |
4:Gouraud-shaded |
5=Phong-shaded } باشد
(مقدار
پیشفرض: '3').
- '_display_3d_motion_time_limit' بر
حسب
میلیثانیه
مشخص
میشود. بیش
از این
زمان، رندر
حرکتی به
حالت 'bounding-box'
تغییر
مییابد
(مقدار
پیشفرض: '300').
- '_display_3d_side_mode'
میتواند {
0:Single-sided | 1:Double-sided | 2:Single-sided (flipped) }
باشد (مقدار
پیشفرض: '0').
- '_display_3d_is_zbuffer'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '1').
- '_display_3d_focal'
میتواند {
<0:Perspective projection w/o sprite zooming, 0:Parallel projection |
>0:Perspective projection }
باشد (مقدار
پیشفرض: 1.5).
- '_display_3d_is_axes'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '1').
- '_display_3d_is_bounding_box'
میتواند { 0:Off
| 1:On } باشد
(مقدار
پیشفرض: '0').
- '_display_3d_background' یک عدد
صحیح بدون
علامت در
بازه [0,11] است
(مقدار
پیشفرض: '11').
- '_display_3d_pose'
دنبالهای
از 12 مقدار
است که
ماتریس
وضعیت
سهبعدی
فعلی را
تعریف
میکند
(خواندن/نوشتن).
- '_display_3d_animation'
میتواند { 0:Off
| 1:Forward | 2:Backward } باشد
(مقدار
پیشفرض: '0').
- '_display_3d_animation_mode'
میتواند {
0-3:X-axis | 4-7:Y-axis | 8-11:Z-axis | 12-15:XYZ-axes }
باشد (مقدار
پیشفرض: '4').
d0:
میانبُری
برای دستور
'display0'.
display0:
نمایش
تصاویر
انتخابشده
در یک پنجره
تعاملی،
بدون فعال
بودن
نرمالسازی
و حالت
آلفا.
da:
میانبُری
برای دستور
'display_array'.
display_array:
_width>0,_height>0
نمایش
تصاویر در
پنجرههای
تعاملی به
گونهای که
بتوان
همسایگیهای
پیکسلی را
کاوش کرد.
مقادیر
پیشفرض:
'width=13' و 'height=width'.
dc:
میانبُری
برای دستور
'display_camera'.
display_camera:
باز کردن
نمایشگر
دوربین.
این دستور
نیازمند
ویژگیهایی
از
کتابخانه OpenCV
است (که به
طور
پیشفرض در
G'MIC فعال
نیست).
dclut:
میانبُری
برای دستور
'display_clut'.
display_clut:
_image_resolution>0,_clut_resolution>0
نمایش LUTهای
رنگی
سهبعدی
انتخابشده.
مقادیر
پیشفرض:
'image_resolution=320' و 'clut_resolution=33'.
مثال:
[#1] clut tealorange clut summer clut 60s display_clut 400
dfft:
میانبُری
برای دستور
'display_fft'.
display_fft:
نمایش
تبدیل
فوریه
تصاویر
انتخابشده،
همراه با
لگاریتم
اندازه و
آرگومان
متمرکزشده.
(معادل
دستور
میانبُر
'dfft').
مثال:
[#1] image.jpg +display_fft
dg:
میانبُری
برای دستور
'display_graph'.display_graph:
_width>=0,_height>=0,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel,_frame_size>=0
رندر پلات
نمودار از
دادههای
تصویر
انتخابشده.
'plot_type'
میتواند { 0:None
| 1:Lines | 2:Splines | 3:Bar } باشد.
'vertex_type'
میتواند { 0:None
| 1:Points | 2,3:Crosses | 4,5:Circles | 6,7:Squares }
باشد.
'xmin'، 'xmax'، 'ymin' و
'ymax' مختصات
محورهای xy
نمایشدادهشده
را تنظیم
میکنند.
اگر 'width' یا 'height'
مشخصشده
برابر '0'
باشد،
اندازه
تصویر روی
نصف اندازه
صفحه نمایش
تنظیم
میشود.
مقادیر
پیشفرض:
'width=0'، 'height=0'،
'plot_type=1'، 'vertex_type=1'،
'xmin=xmax=ymin=ymax=0 (auto)'،
'xlabel="x-axis"'، 'ylabel="y-axis"'
و 'frame_size=32'.
مثال:
[#1] 128,1,1,1,'cos(x/10+u)' +display_graph 400,300,3
dh:
میانبُری
برای دستور
'display_histogram'.
display_histogram:
_width>=0,_height>=0,_clusters>0,_min_value[%],_max_value[%],_show_axes={
0:No | 1:Yes },_expression.
رندر
بافتنگار
(histogram) به صورت
کانال به
کانال.
اگر تصاویر
انتخابشده
دارای
چندین برش (slice)
باشند،
رندر برای
تمام
برشهای
ورودی
انجام
میشود.
'expression' یک عبارت
ریاضی است
که برای
تبدیل
دادههای
بافتنگار
به منظور
مصورسازی
استفاده
میشود.
(معادل
دستور
میانبُر
'dh').
اگر 'width' یا 'height'
مشخصشده
برابر '0'
باشد،
آنگاه
اندازه
تصویر روی
نصف اندازه
صفحه نمایش
تنظیم
میشود.
مقادیر
پیشفرض:
'width=0'، 'height=0'،
'clusters=256'، 'min_value=0%'،
'max_value=100%'، 'show_axes=1' و
'expression=i'.
مثال:
[#1] image.jpg +display_histogram 512,300
display_parametric:
_width>0,_height>0,_outline_opacity,_vertex_radius>=0,_is_antialiased={
0:No | 1:Yes },_is_decorated={ 0:No | 1:Yes },_xlabel,_ylabel
رندر منحنی
پارامتریک
دوبعدی یا
سهبعدی یا
ابر نقاط از
دادههای
تصویر
انتخابشده.
نقاط منحنی
به عنوان
پیکسلهای
یک تصویر ۲
یا ۳ کاناله
تعریف
میشوند.
اگر تصویر
نقاط دارای
بیش از ۳
کانال
باشد،
کانالهای
اضافی رنگ (R,G,B)
را برای هر
رأس تعیین
میکنند.
اگر 'outline_opacity>1'
باشد، خطوط
پیرامونی
متناسب با
رنگ
رأسهای
مشخصشده
رنگآمیزی
میشوند و
'outline_opacity-1' به
عنوان
میزان
شفافیت (opacity)
واقعی رسم
استفاده
میشود.
مقادیر
پیشفرض:
'width=512'، 'height=width'،
'outline_opacity=3'، 'vertex_radius=0'،
'is_antialiased=1'،
'is_decorated=1'، 'xlabel="x-axis"' و
'ylabel="y-axis"'.
مثال:
[#1]
1024,1,1,2,'t=x/40;(!c?sin(t):cos(t))*(exp(cos(t))-2*cos(4*t)-sin(t/12)^5)'
display_parametric 512,512
[#2] 1000,1,1,2,u(-100,100) quantize 4,1 noise 12 channels 0,2 +normalize
0,255 append c display_parametric 512,512,0.1,8
display_polar:
_width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end,_xlabel,_ylabel
رندر منحنی
قطبی از
دادههای
تصویر
انتخابشده.
'outline_type'
میتواند {
r<0:Dots with radius -r | 0:No outline | r>0:Lines+dots with radius r
} باشد.
'fill_color'
میتواند { -1:No
fill | R,G,B:Fill with specified color }
باشد.
مقادیر
پیشفرض:
'width=500'، 'height=width'،
'outline_type=1'، 'fill_R=fill_G=fill_B=200'،
'theta_start=0'،
'theta_end=360'، 'xlabel="x-axis"' و
'ylabel="y-axis"'.
مثال:
[#1] 300,1,1,1,'0.3+abs(cos(10*pi*x/w))+u(0.4)' display_polar
512,512,4,200,255,200
[#2] 3000,1,1,1,'x^3/1e10' display_polar 400,400,1,-1,,,0,{15*360}
dq:
میانبُری
برای دستور
'display_quiver'.
display_quiver:
_size_factor>0,_arrow_size>=0,_color_mode={ 0:Monochrome | 1:Grayscale
| 2:Color }
رندر
تصاویر
انتخابشده
از
بردارهای
دوبعدی به
عنوان
میدانی از
پیکانهای
دوبعدی.
(معادل
دستور
میانبُر
'dq').
مقادیر
پیشفرض:
'size_factor=16'، 'arrow_size=1.5' و
'color_mode=1'.
مثال:
[#1] image.jpg +luminance gradient[-1] xy rv[-2,-1] *[-2] -1 a[-2,-1] c crop
60,10,90,30 +display_quiver[1] ,
drgba:
میانبُری
برای دستور
'display_rgba'.
display_rgba:
_background_RGB_color
رندر
تصاویر RGBA
انتخابشده
روی یک
پسزمینه
شطرنجی یا
رنگی.
(معادل
دستور
میانبُر
'drgba').
مقادیر
پیشفرض:
'background_RGB_color=undefined'
(شطرنجی).
مثال:
[#1] image.jpg +norm threshold[-1] 40% blur[-1] 3 normalize[-1] 0,255 append
c display_rgba
dt:
میانبُری
برای دستور
'display_tensors'.
display_tensors:
_size_factor>0,_ellipse_size>=0,_color_mode={ 0:Monochrome |
1:Grayscale | 2:Color },_outline>=0
رندر
تصاویر
انتخابشده
از
تانسورها
به عنوان
میدانی از
بیضیهای
دوبعدی.
(معادل
دستور
میانبُر
'dt').
مقادیر
پیشفرض:
'size_factor=16'، 'ellipse_size=1.5'،
'color_mode=2' و 'outline=2'.
مثال:
[#1] image.jpg +diffusiontensors 0.1,0.9 rescale2d. 64 +display_tensors.
16,2
آموزش:
https://gmic.eu/oldtutorial/_display_tensors
dv3d:
میانبُری
برای دستور
'display_voxels3d'.
display_voxels3d:
نمایش
تصاویر
انتخابشده
به عنوان
مجموعهای
از
وکسیلهای
سهبعدی.
(معادل
دستور
میانبُر
'dv3d').
dw:
میانبُری
برای دستور
'display_warp'.
display_warp:
_cell_size>0
رندر
میدانهای
پیچش (warping fields)
دوبعدی
انتخابشده.
(معادل
دستور
میانبُر
'dw').
مقدار
پیشفرض:
'cell_size=15'.
مثال:
[#1]
400,400,1,2,'x=x-w/2;y=y-h/2;r=sqrt(x*x+y*y);a=atan2(y,x);5*sin(r/10)*[cos(a),sin(a)]'
+display_warp 10
e (+):
میانبُری
برای دستور
'echo'.
echo (+):
message
چاپ پیام
مشخصشده
در خروجی
خطا.
(معادل
دستور
میانبُر
'e').
گزینش
دستور (در
صورت وجود)
به جای
شناسههای
تصویر،
بیانگر
زیرمجموعهای
از پشته
فراخوانی (call
stack)
نمایشیافته
است.
هنگامی که
با پیشوند '+'
فراخوانی
شود (یعنی
'+echo')، دستور
پیام خود را
به جای stderr در stdout
چاپ
میکند.
echo_file:
filename,message
چاپ پیام
مشخصشده و
الحاق آن به
فایل خروجی
تعیینشده.
(مشابه 'echo'
برای جریان
فایل خروجی
مشخصشده).
font:
{ 'Font_name' | font_number | font.gmz },_font_height[%]>0,_is_bold={ 0:No
| 1:Yes }
شناسه قلم
(نام متغیر)
را
برمیگرداند
که بعداً
میتواند
در دستور 'text'
به عنوان یک
قلم سفارشی
استفاده
شود.
'Font name'
میتواند { Acme |
Arial | ArialBlack | BlackOpsOne | BlackChancery | CabinSketch | Caprasimo |
CarnevaleeFreakshow | CheeseBurger
| Cheque | ChequeBlack | Chlorinar | ComicSansMS | CourierNew | Creepster
| Georgia | Hidayatullah | Impact | Jaro | Lobster | LuckiestGuy |
Macondo
| MedievalSharp | OdinRounded | Oswald | PalatinoLinotype |
PlayfairDisplay | Roboto | Satisfy | Sofia | SundayMilk | TexGyreAdventor |
TimesNewRoman
| TitanOne | Typewriter | Verdana } باشد.
اگر نام
فایل 'font.gmz'
مشخص شود،
باید فایلی
باشد که با
دستور 'font2gmz'
تبدیل شده
باشد.
مقادیر
پیشفرض:
'font_height=64' و 'is_bold=0'.
مثال:
[#1] 400,300,1,3 text "Hello World!",0.5~,0.5~,${"font
font2gmz:
_font_name,_font_size>0,_font_qualifier
تبدیل قلم
مشخصشده
به قالب G'MIC،
تا بتوان از
آن به عنوان
یک قلم
سفارشی در
دستور 'text'
استفاده
کرد.
'font_name'
میتواند
نام یک فایل
مانند 'font.ttf' یا
یک 'Google Font Name' باشد.
این دستور
نیازمند
این است که
ابزار خط
فرمان 'cutycapt' روی
سیستم شما
نصب باشد.
توجه: 'font_size'
اندازه قلم
مورد
استفاده
برای رندر
است و با
ارتفاع قلم
مطابقت
ندارد.
مقادیر
پیشفرض:
'font_name=Sofia'، 'font_size=24' و
'font_qualifier=""'.
function1d:
0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn
درج تابع
اسپلاین
تکبعدی
پیوسته از
فهرست
مشخصشده
نقاط کلیدی
(xk,yk)
در بازه [0,max(xk)]
(که xkها
اعداد صحیح
مثبت
هستند).
مثال:
[#1] function1d 1,0,0,10,30,40,20,70,30,80,0 +display_graph 400,300
identity:
_width>=0,_height>=0,_depth>=0
درج یک
نگاشت
همانی با
اندازه
دادهشده
در انتهای
فهرست
تصاویر.
مقادیر
پیشفرض:
'height=width' و 'depth=1'.
مثال:
[#1] identity 5,1 identity 8,8
i (+):
میانبُری
برای دستور
'input'.
input (+):
[type:]filename |
[type:]http://URL |
[selection]x_nb_copies>0 |
{ width[%]>0 | [image_w] },{ _height[%]>0 | [image_h] },{
_depth[%]>0 | [image_d] },{ _spectrum[%]>0 | [image_s] },_{
value1,_value2,... | 'formula'
} |
(value1{,|;|/|^}value2{,|;|/|^}...[:{x|y|z|c|,|;|/|^}]) |
0
درج یک
تصویر جدید
برگرفته از
نام فایل یا
از کپی یک
تصویر
موجود [index]،
یا درج
تصویر جدید
با ابعاد و
مقادیر
مشخصشده.
ممکن است
نقلقولهای
تکی در
'formula' حذف شوند.
تعیین
آرگومان '0'
یک تصویر 'empty'
درج میکند.
(معادل
دستور
میانبُر
'i').
مقادیر
پیشفرض:
'nb_copies=1'، 'height=depth=spectrum=1' و
'value1=0'.
مثال:
[#1] input image.jpg
[#2] input (1,2,3;4,5,6;7,8,9^9,8,7;6,5,4;3,2,1)
[#3] image.jpg (1,2,3;4,5,6;7,8,9) (255^128^64)
400,400,1,3,'(x>w/2?x:y)*c'
آموزش:
https://gmic.eu/tutorial/input
input_565:
filename,width>0,height>0,reverse_endianness={ 0:No | 1:Yes }
درج
دادههای
تصویر از یک
فایل خام RGB-565
در انتهای
فهرست.
مقدار
پیشفرض:
'reverse_endianness=0'.
ib:
میانبُری
برای دستور
'input_bytes'.
input_bytes:
filename
ورود فایل
مشخصشده
به عنوان یک
آرایه
تکبعدی از
بایتها.
(معادل
دستور
میانبُر
'ib').
input_csv:
"filename",_delimiter,_read_data_as={ 0:Numbers | 1:Strings }
درج
آرایهای
از رشتهها
یا اعداد،
خواندهشده
از فایل .csv
مشخصشده.
یک تصویر 'WxH'
در انتهای
فهرست درج
میشود که
در آن هر
پیکسل با
مقدار
برداری 'I(x,y)'،
محتوای (عدد
یا رشته) هر
سلول را
کدگذاری
میکند.
مقادیر
پیشفرض:
'delimiter=,' و 'read_data_as=1'.
input_cube:
"filename",_convert_1d_cluts_to_3d={ 0:No | 1:Yes }.
درج
دادههای CLUT
از یک نام
فایل .cube (قالب
فایل CLUT شرکت
Adobe).
مقدار
پیشفرض:
'convert_1d_cluts_to_3d=0'.input_flo:
"filename"
درج
دادههای
جریان نوری
(optical flow) از یک نام
پرونده .flo
(قالب
پرونده vision.middlebury.edu).
ig:
میانبُری
برای دستور
'input_glob'.
input_glob:
pattern
درج تصاویر
جدید از چند
نام پرونده
که با الگوی
glob مشخصشده
مطابقت
دارند.
(معادل
دستور
میانبُر
'ig').
input_gpl:
filename
ورودی
گرفتن نام
پرونده
مشخصشده
به عنوان یک
پرونده
دادههای
پالت .gpl.
input_cached:
"basename.ext",_downloading_from_gmic_server
ورودی
گرفتن نام
پرونده
مشخصشده،
با فرض
اینکه در
یکی از
پوشههای
منابع G'MIC
ذخیره شده
است.
اگر پرونده
پیدا نشود و
'try_downloading=1' باشد،
پرونده از
سرور G'MIC
بارگیری
شده و در
پوشه
'${-path_cache}' ذخیره
میشود.
این دستور
مسیر کامل
به پرونده
مربوطه را
بازمیگرداند.
'downloading_from_gmic_server'
میتواند { 0:No |
1:Yes, if file not found | 2:Yes, if file not in regular cache folder }
باشد.
مقدار
پیشفرض:
'try_downloading_from_gmic_server=1'.
in:
Shortcut for command 'input_normalized'.
input_normalized:
filename
ورودی
گرفتن نام
پرونده
مشخصشده و
محدود کردن
بازه
مقادیر آن
به [0,255].
(معادل
دستور
میانبُر
'in').
input_obj:
filename
ورودی
گرفتن مش
سهبعدی
مشخصشده
از یک
پرونده Wavefront با
قالب .obj.
it:
Shortcut for command 'input_text'.
input_text:
filename
ورودی
گرفتن
پرونده
داده متنی
مشخصشده
به عنوان یک
تصویر جدید.
(معادل
دستور
میانبُر
'it').
lorem:
_width>0,_height>0
ورودی
گرفتن یک
تصویر
تصادفی با
اندازه
مشخصشده،
دریافتشده
از
اینترنت.
مقادیر
پیشفرض:
'width=height=800'.
network (+):
mode={ -1=Disabled | 0:Enabled w/o timeout | >0:Enabled w/ specified
timeout in seconds }
فعال/غیرفعال
کردن
بارگیری از
شبکه و
تعیین مهلت
زمانی (timeout)
مربوطه.
(حالت
پیشفرض 'enabled w/o
timeout' است).
o (+):
میانبُری
برای دستور
'output'.
output (+):
[type:]filename,_format_options
خروجی دادن
تصاویر
انتخابشده
به صورت یک
یا چند
پرونده
شمارهگذاریشده.
(معادل
دستور
میانبُر
'o').
مقدار
پیشفرض:
'format_options'=(تعریفنشده).
output_565:
"filename",reverse_endianness={ 0:No | 1:Yes }
خروجی دادن
تصاویر
انتخابشده
به صورت
پروندههای
خام RGB-565.
مقدار
پیشفرض:
'reverse_endianness=0'.
output_csv:
"filename",_delimiter,_write_data_as={ 0:Numbers | 1:Strings }
خروجی دادن
آرایههای
کدگذاریشده
به صورت ascii
انتخابشده
به صورت
پروندههای
.csv.
مقادیر
پیشفرض:
'delimiter=,' و 'write_data_as=1'.
output_cube:
"filename"
خروجی دادن
CLUTهای
انتخابشده
به صورت
پروندههای
.cube (قالب Adobe CLUT).
output_flo:
"filename"
خروجی دادن
جریان نوری
(optical flow)
انتخابشده
به صورت یک
پرونده .flo
(قالب
پرونده vision.middlebury.edu).
output_ggr:
filename,_gradient_name
خروجی دادن
تصاویر
انتخابشده
به صورت
پروندههای
گرادیان .ggr
(برنامه GIMP).
اگر نام
گرادیانی
مشخص نشود،
از نام
پرونده
استنباط
خواهد شد.
output_gmz:
filename,_datatype
خروجی دادن
تصاویر
انتخابشده
به صورت
پروندههای
.gmz (قالب
پرونده
بومی G'MIC).
'datatype'
میتواند { bool |
uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 | float32 |
float64 } باشد.
output_obj:
filename,_save_materials={ 0:No | 1:Yes }
خروجی دادن
مشهای
سهبعدی
انتخابشده
به صورت
پروندههای
شیء
سهبعدی Wavefront.
برای ایجاد
پرونده
متریال
مربوطه ('.mtl') و
احتمالاً
پروندههای
بافت (texture)،
مقدار 'save_materials'
را برابر '1'
قرار دهید.
هشدار:
خروجی
گرفتن به
پروندههای
'.obj' ممکن است
برای اشیاء
سهبعدی
بزرگ
کاملاً کند
باشد.
مقدار
پیشفرض:
'save_materials=1'.
ot:
میانبُری
برای دستور
'output_text'.
output_text:
filename
خروجی دادن
تصاویر
انتخابشده
به عنوان
پروندههای
دادههای
متنی.
(معادل
دستور
میانبُر
'ot').
on:
میانبُری
برای دستور
'outputn'.
outputn:
filename,_index
خروجی دادن
تصاویر
انتخابشده
با نام
پروندههای
دارای
شمارهگذاری
خودکار در
حلقههای
repeat...done.
(معادل
دستور
میانبُر
'on').
op:
میانبُری
برای دستور
'outputp'.
outputp:
prefix
خروجی دادن
تصاویر
انتخابشده
به صورت
نسخههای
پیشونددار
از نامهای
پرونده
اصلیشان.
(معادل
دستور
میانبُر
'op').
مقدار
پیشفرض:
'prefix=_'.
ow:
میانبُری
برای دستور
'outputw'.
outputw:
خروجی دادن
تصاویر
انتخابشده
با
بازنویسی
روی مکان
اصلی آنها.
(معادل
دستور
میانبُر
'ow').
ox:
Shortcut for command 'outputx'.
outputx:
extension1,_extension2,_...,_extensionN,_output_at_same_location={ 0:No |
1:Yes }
خروجی دادن
تصاویر
انتخابشده
با نام پایه
پرونده
یکسان اما
برای N پسوند
مختلف.
(معادل
دستور
میانبُر
'ox').
مقدار
پیشفرض:
'output_at_same_location=0'.
parse_cli:
_output_mode,_{ * | command_name }
تجزیه
تعریف
دستورات
مستندشده
با '@cli' و
خروجی دادن
اطلاعات
درباره
آنها در
حالت خروجی
مشخصشده.
'output_mode'
میتواند { ascii
| bashcompletion | html | images | print }
باشد.
مقادیر
پیشفرض:
'output_mode=print' و 'command_name=*'.
parse_gmd:
تجزیه و
نشانهگذاری
(tokenize) تصاویر
انتخابشده،
که به عنوان
رشتههای
متنی
قالببندیشده
با نحو
نشاندار G'MIC
در نظر
گرفته
میشوند.
gmd2html:
_include_default_header_footer={ 0:None | 1:Reference | 2:Tutorial | 3:News }
|
(no arg)
تبدیل
تصاویر
متنی
انتخابشده
با قالب gmd به
قالب html.
مقادیر
پیشفرض:
'include_default_header_footer=1'.
gmd2ascii:
_max_line_length>0,_indent_forced_newlines>=0 |
(no arg)
تبدیل
تصاویر
متنی
انتخابشده
با قالب gmd به
قالب ascii.
مقادیر
پیشفرض:
'max_line_length=80' و 'indent_forced_newline=0'.
parse_gui:
_outputmode,_{ * | filter_name}
تجزیه
تعاریف
فیلترهای
انتخابشده
و تولید
اطلاعات
درباره
فیلترها در
حالت خروجی
مشخصشده.
'outputmode'
میتواند { gmicol
| images | json | list | print | strings | update | zart }
باشد.
تعریف یک
حالت خروجی
سفارشی با
پیادهسازی
دستورات
زیر
امکانپذیر
است
('outputmode' باید با
نام حالت
خروجی
سفارشی
کاربر
جایگزین
شود):
. 'parse_gui_outputmode' :
دستوری که
اطلاعات
تجزیهشده
را با قالبی
سفارشی
خروجی
میدهد.
. 'parse_gui_parseparams_outputmode'
(اختیاری): یک
دستور ساده
که 0 یا 1
برمیگرداند.
این دستور
به
تجزیهکننده
اعلام
میکند که
آیا
پارامترهای
فیلتر
منطبق باید
تحلیل شوند
یا خیر
(کندتر).
. 'parse_gui_trigger_outputmode'
(اختیاری):
دستوری که
توسط
تجزیهکننده
درست پیش از
تجزیه
مجموعه هر
فیلتر
منطبق
فراخوانی
میشود.
در اینجا
فهرست
متغیرهای
سراسری
تنظیمشده
توسط
تجزیهکننده
آمده است،
که در دستور
'parse_gui_outputmode' در
دسترس
هستند:
'$_nb_filters': تعداد
فیلترهای
منطبق.
'$_nongui'
(ذخیرهشده
به عنوان یک
تصویر): تمام
خطوط
ادغامشده
در پرونده
که با خطوط
'#@gui' مطابقت
ندارند.
به ازای هر
فیلتر ' * '$_fF_name' :
نام فیلتر.
* '$_fF_path' : مسیر
کامل.
* '$_fF_locale' :
محلیسازی
(locale) فیلتر (در
صورت مشخص
نشدن، خالی).
* '$_fF_command' : دستور
فیلتر.
* '$_fF_command_preview' : دستور
پیشنمایش
فیلتر (در
صورت مشخص
نشدن، خالی).
* '$_fF_zoom_factor' : ضریب
بزرگنمایی
پیشفرض (در
صورت مشخص
نشدن، خالی).
* '$_fF_preview_accuracy' : دقت
پیشنمایش
(میتواند {
0:Does not support zoom in/out | 1:Support zoom in/out | 2:Pixel-perfect
} باشد).
* '$_fF_input_mode' : حالت
ورودی
ترجیحی
پیشفرض (در
صورت مشخص
نشدن، خالی).
* '$_fF_hide' : مسیر
فیلتر
پنهانشده
توسط فیلتر
جاری (برای
فیلترهای
محلیشده،
در صورت
مشخص نشدن
خالی).
* '$_fF_nb_params' : تعداد
پارامترها.
به ازای هر
پارامتر ' *
'$_fF_pP_name' : نام
پارامتر.
* '$_fF_pP_type' : نوع
پارامتر.
* '$_fF_pP_responsivity' :
پاسخدهی
پارامتر
(میتواند { 0:No
| 1:Yes } باشد).
* '$_fF_pP_randomizable' : ویژگی
تصادفیسازیپذیری
پارامتر
(میتواند { 0:No
| 1:Yes } باشد).
* '$_fF_pP_visibility' :
قابلیت دید
پارامتر.
* '$_fF_pP_propagation' :
انتشار
قابلیت دید
پارامتر.
* '$_fF_pP_nb_args' : تعداد
آرگومانهای
پارامتر.
به ازای هر
آرگومان ' *
'$_fF_pP_aA' : مقدار
آرگومان
پارامترهای
پیشفرض:
'filter_name=*' و 'output_format=print'.
pass (+):
_shared_state={ -1:Status only | 0:Non-shared (copy) | 1:Shared | 2:Adaptive
}
درج تصاویر
از بافت
والد یک
دستور
سفارشی یا
یک محیط
محلی.
انتخاب
دستور (در
صورت وجود)
به معنی
انتخابی از
تصاویر در
بافت والد
است.
به طور
پیشفرض
(وضعیت
اشتراکی
تطبیقی)،
تصاویر
انتخابشده
در صورتی در
وضعیت
اشتراکی
درج
میشوند که
به بافت
(انتخاب)
دستور
سفارشی
جاری یا
محیط محلی
نیز تعلق
نداشته
باشند.
کاربرد
معمول
دستور 'pass' به
طراحی
دستورات
سفارشی
مربوط
میشود که
تصاویر را
به عنوان
آرگومان
دریافت
میکنند.
این دستور
فهرست
شاخصهای
مربوطه را
در وضعیت (status)
بازمیگرداند.
مقدار
پیشفرض:
'shared_state=2'.
مثال:
[#1] command "average : pass$""1 add[^-1] [-1] remove[-1] div
2" sample ? +mirror y +average[0] [1]plot:
_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_exit_on_anykey={ 0:No |
1:Yes }
نمایش
تصاویر یا
فرمول
انتخابشده
در یک
نمایشگر
تعاملی (در
صورت باز
بودن، از
پنجره
نمایش فوری
[0] استفاده
میکند).
مقدار 'plot_type'
میتواند { 0:None
| 1:Lines | 2:Splines | 3:Bar } باشد.
مقدار 'vertex_type'
میتواند { 0:None
| 1:Points | 2,3:Crosses | 4,5:Circles | 6,7:Squares }
باشد.
'xmin'، 'xmax'، 'ymin' و
'ymax' مختصات
محورهای xy
نمایشدادهشده
را تنظیم
میکنند.
مقادیر
پیشفرض:
'plot_type=1'، 'vertex_type=1'،
'xmin=xmax=ymin=ymax=0 (auto)' و
'exit_on_anykey=0'.
poincare_disk:
_size>=0,_p>2,_q>2,_angle,_tiling={ 0:Triangular | 1:Polygonal
},_nb_max_iter>=0,_xmin,_ymin,_xmax,_ymax
بازگرداندن
یک تصویر ۳
کاناله از
دیسک
پوانکاره.
کانالهای
خروجی '[x,y,it]'
هستند.
مقادیر
پیشفرض:
'size=1024'، 'p=5'، 'q=3'،
'angle=0'، 'tiling=0'،
'nb_max_iter=20'، 'xmin=ymin=-1'
و 'xmax=ymax=1'.
مثال:
[#1] repeat 4 { poincare_disk 1024,{3+$>} channels[-1] 2 mod[-1] 3 neq[-1]
2 } rescale2d 50%
portrait:
_size>0
دریافت یک
تصویر
پرتره
تصادفی با
اندازه
مشخصشده
از اینترنت
به عنوان
ورودی.
مقادیر
پیشفرض:
'size=800'.
p:
میانبری
برای دستور
'print'.
print:
چاپ
اطلاعات
تصاویر
انتخابشده
در خروجی
خطای
استاندارد
(stderr).
(معادل
دستور
میانبر 'p').
هنگامی که
با پیشوند '+'
فراخوانی
شود (یعنی
'+print')، دستور
خروجی را به
جای 'stderr' در 'stdout'
چاپ
میکند.
random_patches:
_nb_patches>0,_patch_size>0
تولید
مجموعهای
از
وصلههای
رنگی مربعی
شامل اشکال
هندسی
تصادفی، که
به عنوان یک
تصویر حجمی
بازگردانده
میشود.
مقادیر
پیشفرض:
'nb_patches=16' و 'patch_size=64'.
مثال:
[#1] random_patches 16,64 split z append_tiles ,
random_pattern:
_width>0,_height>0,_min_detail_level>=0
درج یک
تصویر RGB
جدید با
اندازه
مشخصشده
در انتهای
فهرست
تصاویر،
رندرشده با
یک الگوی
تصادفی.
مقادیر
پیشفرض:
'width=height=512' و 'min_detail_level=2'.
مثال:
[#1] repeat 6 { random_pattern 256 }
screen (+):
_x0[%],_y0[%],_x1[%],_y1[%]
گرفتن
اسکرینشات،
بهصورت
اختیاری با
مختصات
مشخصشده،
و درج آن
در انتهای
فهرست
تصاویر.
select:
feature_type,_X[%]>=0,_Y[%]>=0,_Z[%]>=0,_exit_on_anykey={ 0:No |
1:Yes },_is_multiaxes_selection={ 0:No | 1:Yes }
انتخاب
تعاملی یک
عارضه از
تصاویر
انتخابشده
(در صورت باز
بودن، از
پنجره
نمایش فوری
[0] استفاده
میکند).
مقدار 'feature_type'
میتواند {
0:Point | 1:Segment | 2:Rectangle | 3:Ellipse }
باشد.
آرگومانهای
'X'، 'Y' و 'Z'
نمای
انتخاب
اولیه را
برای
تصاویر
حجمی
سهبعدی
تعیین
میکنند.
عارضه
دریافتشده
به عنوان یک
بردار ۳
بعدی (اگر
'feature_type==0') یا به
عنوان یک
بردار ۶
بعدی
(اگر 'feature_type!=0')
حاوی
مختصات
عارضه
بازگردانده
میشود.
مقادیر
پیشفرض:
'feature_type=2'، 'X=Y=Z=50%'،
'exit_on_anykey=0' و 'is_multiaxes_selection=1'.
serialize (+):
_datatype,_is_compressed={ 0:No | 1:Yes },_store_names={ 0:No | 1:Yes }
سریالسازی
فهرست
تصاویر
انتخابشده
در قالب یک
تکتصویر،
بهصورت
اختیاری به
شکل
فشردهشده.
مقدار 'datatype'
میتواند { auto |
uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 | float32 |
float64 } باشد.
اگر تمام
تصاویر
انتخابشده
بازهای از
مقادیر
محدود به یک
نوعداده
خاص دارند،
جهت به
حداقل
رساندن
ردپای
حافظه،
'datatype' را مشخص
کنید.
تصویر حاصل
تنها دارای
مقادیر
صحیح در [0,255]
است و سپس
میتواند
به عنوان یک
تصویر خام
از
unsigned char ذخیره
شود (انجام
این کار یک
فایل معتبر
.cimg[z] یا .gmz خروجی
میدهد).
اگر 'store_names' روی
'1' تنظیم
شود،
سریالسازی
از قالب .gmz
برای ذخیره
دادهها در
حافظه
استفاده
میکند
(در غیر این
صورت از
قالب .cimg[z]).
مقادیر
پیشفرض:
'datatype=auto'، 'is_compressed=1' و
'store_names=1'.
مثال:
[#1] image.jpg +serialize uint8 +unserialize[-1]
shape_circle:
_size>=0
وارد کردن
یک شکل
دودویی
دایره ۲
بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'.
مثال:
[#1] shape_circle ,
shape_cupid:
_size>=0
وارد کردن
یک شکل
دودویی
کوپید ۲
بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'.
مثال:
[#1] shape_cupid ,
shape_diamond:
_size>=0
وارد کردن
یک شکل
دودویی
لوزی ۲ بعدی
با اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'.
مثال:
[#1] shape_diamond ,
shape_dragon:
_size>=0,_recursion_level>=0,_angle
وارد کردن
یک منحنی
اژدها ۲
بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'، 'recursion_level=18' و
'angle=0'.
مثال:
[#1] shape_dragon ,
shape_fern:
_size>=0,_density[%]>=0,_angle,0<=_opacity<=1,_type={ 0:Asplenium
adiantum-nigrum | 1:Thelypteridaceae }
وارد کردن
یک سرخس
بارنزلی ۲
بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'، 'density=50%'،
'angle=30'، 'opacity=0.3' و 'type=0'.
مثال:
[#1] shape_fern ,
shape_gear:
_size>=0,_nb_teeth>0,0<=_height_teeth<=100,0<=_offset_teeth<=100,0<=_inner_radius<=100
وارد کردن
یک شکل
دودویی
چرخدنده ۲
بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'، 'nb_teeth=12'،
'height_teeth=20'، 'offset_teeth=0' و
'inner_radius=40'.
مثال:
[#1] shape_gear ,
shape_heart:
_size>=0
وارد کردن
یک شکل
دودویی قلب
۲ بعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=512'.
مثال:
[#1] shape_heart ,
shape_hilbert:
_size>=0,_nb_recursions>=0
وارد کردن
یک تصویر ۲
بعدی از
منحنی
هیلبرت.
مقادیر
پیشفرض:
'size=512' و 'nb_recursions=5'.
مثال:
[#1] shape_hilbert ,
shape_menger:
_nb_iterations>=0
وارد کردن
یک نمایش
واکسلی ۳
بعدی از
اسفنج
منگر.
مقدار
پیشفرض:
'nb_iterations=3'.
مثال:
[#1] shape_menger 4 surfels3d , color3d 200 m3d 3
shape_mosely:
_nb_iterations>=0
وارد کردن
یک نمایش
واکسلی ۳
بعدی از
دانه برف
موزلی.
مقدار
پیشفرض:
'nb_iterations=3'.
مثال:
[#1] shape_mosely 4 surfels3d , color3d 200 m3d 3
shape_peano:
_size>=0,_nb_recursions>=0
وارد کردن
یک تصویر ۲
بعدی از
منحنی
پئانو.
مقادیر
پیشفرض:
'size=512' و 'nb_recursions=3'.
مثال:
[#1] shape_peano ,
shape_polygon:
_size>=0,_nb_vertices>=3,_angle
وارد کردن
یک شکل
دودویی
چندضلعی ۲
بعدی با
هندسه
مشخصشده.
مقدار
پیشفرض:
'size=512'، 'nb_vertices=5' و
'angle=0'.
مثال:
[#1] repeat 6 { shape_polygon 256,{3+$>} }
shape_rays:
_size>=0,_xcenter[%],_ycenter[%],_branches>0,_angle[%],_twist,0<=_perspective<=1,_is_antialias={
0:No | 1:Yes }
وارد کردن
یک مارپیچ
دودویی ۳
بعدی با
اندازه و
ویژگیهای
مشخصشده.
مقادیر
پیشفرض:
'size=512'، 'xcenter=50%'،
'ycenter=50%'، 'branches=7'،
'angle=50%'، 'twist=0'،
'perspective=0.35' و 'is_antialias=0'.
مثال:
[#1] shape_rays 400,50%,50%,7 shape_rays 400,50%,50%,3,0,3
shape_snowflake:
size>=0,0<=_nb_recursions<=6
وارد کردن
یک شکل
دودویی
دانه برف ۲
بعدی با
اندازه
مشخصشده.
مقادیر
پیشفرض:
'size=512' و 'nb_recursions=5'.
مثال:
[#1] repeat 6 { shape_snowflake 256,$> }
shape_star:
_size>=0,_nb_branches>0,0<=_thickness<=1
وارد کردن
یک شکل
دودویی
ستاره ۲
بعدی با
اندازه
مشخصشده.
مقادیر
پیشفرض:
'size=512'، 'nb_branches=5' و
'thickness=0.38'.
مثال:
[#1] repeat 9 { shape_star 256,{$>+2} }
sh (+):
میانبری
برای دستور
'shared'.
shared (+):
x0[%],x1[%],y[%],z[%],c[%] |
y0[%],y1[%],z[%],c[%] |
z0[%],z1[%],c[%] |
c0[%],c1[%] |
c0[%] |
(بدون
آرگومان)درج
بافرهای
اشتراکی از
(بهطور
اختیاری
نقطهها/سطرها/صفحهها/کانالهای)
تصویرهای
انتخابشده.
بافرهای
اشتراکی
نمیتوانند
توسط یک
دستور یا یک
محیط محلی
بازگردانده
شوند.
(معادل
دستور
میانبر 'sh').
مثال:
[#1] image.jpg shared 1 blur[-1] 3 remove[-1]
[#2] image.jpg repeat s { shared 25%,75%,0,$> mirror[-1] x remove[-1]
}
آموزش:
https://gmic.eu/oldtutorial/_shared
sp:
میانبر
برای دستور
'sample'.
sample:
_name1={ ? | apples | balloons | barbara | boats | bottles | butterfly |
cameraman | car | cat | cliff | chick | colorful | david | dog | duck |
eagle | elephant | earth | flower | fruits | gmicky | gmicky_mahvin |
gmicky_wilber | greece | gummy | house | inside | landscape | leaf |
lena | leno | lion | mandrill | monalisa | monkey | parrots | pencils |
peppers | portrait0 | portrait1 | portrait2 | portrait3 | portrait4 |
portrait5 | portrait6 | portrait7 | portrait8 | portrait9 | roddy | rooster |
rose | square | swan | teddy | tiger | tulips | wall |
waterfall | zelda },_name2,...,_nameN,_width={ >=0 | 0 (auto) },_height =
{ >=0 | 0 (auto) } |
(no arg)
وارد کردن
یک تصویر RGB
نمونهی
جدید
(بهطور
اختیاری با
اندازه
مشخصشده).
(معادل
دستور
میانبر 'sp').
آرگومان 'name'
میتواند
با یک عدد
صحیح که به
عنوان
نمایهی
نمونه عمل
میکند
جایگزین
شود.
مثال:
[#1] repeat 6 { sample }
srand (+):
value |
(no arg)
تنظیم بذر (seed)
مولد
تصادفی.
اگر
آرگومانی
مشخص نشود،
یک مقدار
تصادفی به
عنوان بذر
مولد
تصادفی
استفاده
میشود.
store (+):
_is_compressed={ 0:No | 1:Yes },variable_name1,_variable_name2,...
ذخیره
تصویرهای
انتخابشده
در یک یا چند
متغیر
نامگذاریشده.
تصویرهای
انتخابشده
به متغیرها
منتقل
میشوند، و
بنابراین
از فهرست
تصویرها
حذف
میگردند.
(به جز زمانی
که حالت
پیشونددار
دستور '+store[selection]'
استفاده
شود).
اگر تنها یک
نام متغیر
مشخص شود،
تمام
تصویرهای
بخش
انتخابشده
به متغیر
نامگذاریشده
اختصاص
مییابند.
در غیر این
صورت، باید
به تعداد
تصویرهای
بخش
انتخابشده،
نام متغیر
وجود داشته
باشد و هر
تصویر
انتخابشده
به هر متغیر
نامگذاریشدهی
مشخص
اختصاص
مییابد.
از دستور 'input
$variable_name' برای
بازگرداندن
تصویرهای
ذخیرهشده
به فهرست
استفاده
کنید.
مقدار
پیشفرض:
'is_compressed=0'.
مثال:
[#1] sample eagle,earth store img1,img2 input $img2 $img1
آموزش:
https://gmic.eu/tutorial/store
testimage2d:
_width>0,_height>0,_spectrum>0
وارد کردن
یک تصویر
ترکیبی
دوبعدی (2D).
مقادیر
پیشفرض:
'width=512'، 'height=width' و
'spectrum=3'.
مثال:
[#1] testimage2d 512
um:
میانبر
برای دستور
'uncommand'.
uncommand (+):
command_name[,_command_name2,...] |
*
لغو تعریف
دستورهای
سفارشی
مشخصشده.
آرگومان را
برای لغو
تمام
دستورهای
سفارشی
موجود روی '*'
تنظیم کنید.
(معادل
دستور
میانبر 'um').
uniform_distribution:
nb_levels>=1,spectrum>=1
وارد کردن
مجموعهای
از نقاط با
توزیع
یکنواخت spectrum-d
در بازه [0,1]^spectrum.
مثال:
[#1] uniform_distribution 64,3 * 255 +distribution3d circles3d[-1] 10
unserialize (+):
بازسازی
فهرستهای
تصویر از
بافرهای
تصویر
سریالیشده،
بهدستآمده
با دستور
'serialize'.
up:
میانبر
برای دستور
'update'.
update:
بهروزرسانی
دستورها از
جدیدترین
فایل
تعاریف بر
روی سرور G'MIC.
(معادل
دستور
میانبر 'up').
v (+):
میانبر
برای دستور
'verbose'.
verbose (+):
level |
{ + | - }
تنظیم یا
افزایش/کاهش
سطح پرگویی
(verbosity). سطح
پیشفرض 0
است.
(معادل
دستور
میانبر 'v').
هنگامی که
'level>0' باشد،
پیامهای
ثبت وقایع (log)
G'MIC بر روی
خروجی خطای
استاندارد
(stderr) نمایش
داده
میشوند.
مقدار
پیشفرض:
'level=1'.
wait (+):
delay |
(no arg)
انتظار به
مدت یک
تأخیر مشخص
(به
میلیثانیه)،
بهطور
اختیاری از
زمان آخرین
فراخوانی
'wait'.
یا انتظار
برای رخ
دادن یک
رویداد
کاربری در
پنجرههای
نمایش آنی
انتخابشده.
'delay'
میتواند {
<0:Delay+flush events | 0:Event | >0:Delay }
باشد.
انتخاب
دستور (در
صورت وجود)
به جای
نمایههای
تصویر،
نشاندهنده
نمایههای
پنجرههای
نمایش آنی
است.
اگر هیچ
نمایه
پنجرهای
مشخص نشود و
اگر 'delay' مثبت
باشد، این
دستور منجر
به
یک خواب سخت
('hard') در طول
تأخیر
مشخصشده
میشود.
مقدار
پیشفرض:
'delay=0'.
warn (+):
_force_visible={ 0:No | 1:Yes },_message
چاپ پیام
هشدار
مشخصشده
بر روی
خروجی خطای
استاندارد
(stderr).
انتخاب
دستور (در
صورت وجود)
به جای
نمایههای
تصویر،
نشاندهنده
زیرمجموعهای
از پشته
فراخوانی (call
stack)
نمایشدادهشده
است.
w (+):
میانبر
برای دستور
'window'.
window (+):
_width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_pos_x[%],_pos_y[%],_title
نمایش
تصویرهای
انتخابشده
در یک پنجره
نمایش آنی
با اندازه
مشخص، نوع
نرمالسازی،
حالت
تمامصفحه
و عنوان.
(معادل
دستور
میانبر 'w').
اگر 'width' یا 'height'
روی -1 تنظیم
شود، بعد
مربوطه با
اندازه
پنجره
یا تصویر
تنظیم
میشود.
تنها در
صورتی
آرگومانهای
'pos_x' و 'pos_y' را
مشخص کنید
که پنجره
باید به
مختصات
مشخصشده
منتقل شود.
در غیر این
صورت
میتوان از
آنها
صرفنظر
کرد.
'width'=0 یا 'height'=0
پنجره
نمایش آنی
را میبندد.
'normalization'
میتواند {
-1:Keep same | 0:None | 1:Always | 2:1st-time | 3:Auto }
باشد.
'fullscreen'
میتواند {
-1:Keep same | 0:No | 1:Yes } باشد.
میتوانید
با استفاده
از
حالتهای
شمارهدار
'w0'
(پیشفرض،
معادل 'w')،
'w1'، ...، 'w9' از
دستور 'w'، تا
۱۰ پنجره
نمایش آنی
مختلف را
مدیریت
کنید.
اگر پنجره
توسط کاربر
بسته شده
باشد، 'window' را
بدون هیچ
انتخابی
فراخوانی
کنید تا
پنجره
دوباره
نمایان
شود.
مقادیر
پیشفرض:
'width=height=normalization=fullscreen=-1' و
'title=(undefined)'.
11.3. دستکاری
فهرست (List Manipulation)
-----------------
k (+):
میانبر
برای دستور
'keep'.
keep (+):
تنها نگه
داشتن
تصویرهای
انتخابشده.
(معادل
دستور
میانبر 'k').
مثال:
[#1] image.jpg split x keep[0-50%:2] append x
[#2] image.jpg split x keep[^30%-70%] append x
kn:
میانبر
برای دستور
'keep_named'.
keep_named:
"name1","name2",...
نگه داشتن
تمام
تصویرهای
با نامهای
مشخصشده
از فهرست
تصویرها.
اگر هیچ
تصویری با
آن نامها
وجود
نداشته
باشد، تمام
تصویرها را
حذف میکند.
(معادل
دستور
میانبر 'kn').
mv (+):
میانبر
برای دستور
'move'.
move (+):
position[%]
انتقال
تصویرهای
انتخابشده
به موقعیت
مشخصشده.
تصویرها در
واقع بین
موقعیتهای
فعلی 'position-1' و
'position' درج
میشوند.
توجه داشته
باشید که
موقعیت
مشخصشده
ممکن است با
موقعیت
جدید تصویر
پس از دستور
move مطابقت
نداشته
باشد
(بهویژه
اگر
تصویر(های)
منتقلشده
پیش از
موقعیت
مشخصشده
قرار داشته
باشند).
(معادل
دستور
میانبر 'mv').
مثال:
[#1] image.jpg split x,3 move[1] 0
[#2] image.jpg split x move[50%--1:2] 0 append x
nm (+):
میانبر
برای دستور
'name'.
=> (+):
میانبر
برای دستور
'name'.
name (+):
"name1","name2",...,"nameN"
تنظیم نام
تصویرهای
انتخابشده.
* اگر هیچ
انتخاب
تصویر
صریحی داده
نشود،
انتخاب
تصویر به
صورت '[-N--1]' فرض
میشود، که
در آن 'N'
تعداد
آرگومانهای
مشخصشده
است.
* اگر 'N'
بزرگتر از
تعداد
تصویرهای
انتخابشده
باشد،
خطایی صادر
میشود.
* اگر 'N'
کوچکتر از
تعداد
تصویرهای
انتخابشده
باشد، نام
تصویرها به
صورت
دورهای
تخصیص داده
میشود،
یعنی 'name(selection[k]) = arg[k%N]'.
(معادل
دستور
میانبر
'=>').
مثال:
[#1] image.jpg name image blur[image] 2
آموزش:
https://gmic.eu/tutorial/name
rm (+):
میانبر
برای دستور
'remove'.
remove (+):
حذف
تصویرهای
انتخابشده.
(معادل
دستور
میانبر 'rm').
مثال:
[#1] image.jpg split x remove[30%-70%] append x
[#2] image.jpg split x remove[0-50%:2] append x
remove_duplicates:
حذف
تصویرهای
تکراری در
فهرست
تصویرهای
انتخابشده.
مثال:
[#1] (1,2,3,4,2,4,3,1,3,4,2,1) split x remove_duplicates append x
remove_empty:
حذف
تصویرهای
خالی در
فهرست
تصویرهای
انتخابشده.
rmn:
میانبر
برای دستور
'remove_named'.
remove_named:
"name1","name2",...
حذف تمام
تصویرهای
با نامهای
مشخصشده
از فهرست
تصویرها.
اگر تصویری
با آن
نامها
وجود
نداشته
باشد، کاری
انجام
نمیشود.
(معادل
دستور
میانبر 'rmn').
rv (+):
میانبر
برای دستور
'reverse'.
reverse (+):معکوس
کردن
موقعیتهای
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر 'rv').
مثال:
[#1] image.jpg split x,3 reverse[-2,-1]
[#2] image.jpg split x,-16 reverse[50%-100%] append x
sort_list:
_ordering={ +:Increasing | -:Decreasing },_criterion
مرتبسازی
فهرست
تصویرهای
انتخابشده
بر اساس
معیار
تصویر
مشخصشده.
مقادیر
پیشفرض:
'ordering=+'، 'criterion=i'.
مثال:
[#1] (1;4;7;3;9;2;4;7;6;3;9;1;0;3;3;2) split y sort_list +,i append y
11.4.
عملگرهای
ریاضی (Mathematical Operators)
--------------------------------------------
abs (+):
محاسبه قدر
مطلق
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +sub {ia} abs[-1]
[#2] 300,1,1,1,'cos(20*x/w)' +abs display_graph 400,300
abscut (+):
min,_max,_offset
برش قدر
مطلق
مقادیر
پیکسل در
تصویرهای
انتخابشده،
در بازه
مشخصشده.
بهازای هر
مقدار 'i' از
تصویرهای
انتخابشده،
مقدار 'cut(abs(i) +
offset,min,max)*sign(i)' را
محاسبه
میکند.
بنابراین،
تنها قدر
مطلق مقدار
هر پیکسل را
محدود/جابهجا
میکند در
حالی که
علامت آن
بدون تغییر
باقی
میماند.
مقادیر
پیشفرض:
'max=inf' و 'offset=0'.
مثال:
[#1] 300,1,1,1,'cos(20*x/w)' +abscut 0,0.5 append c display_graph 400,300
acos (+):
محاسبه
آرککسینوس
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +normalize -1,1 acos[-1]
[#2] 300,1,1,1,'cut(x/w+0.1*u,0,1)' +acos display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
acosh (+):
محاسبه
آرککسینوس
هذلولوی
نقطهبهنقطه
تصویرهای
انتخابشده.
+ (+):
میانبری
برای دستور
'add'.
add (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
افزودن
مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده
به
تصویرهای
انتخابشده،
یا محاسبه
مجموع
نقطهبهنقطه
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر '+').
مثال:
[#1] image.jpg +add 30% cut 0,255
[#2] image.jpg +blur 5 normalize 0,255 add[1] [0]
[#3] image.jpg add '80*cos(80*(x/w-0.5)*(y/w-0.5)+c)' cut 0,255
[#4] image.jpg repeat 9 { +rotate[0] {$>*36},1,0,50%,50% } add div 10
& (+):
میانبری
برای دستور
'and'.
and (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه AND
بیتی
تصویرهای
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه AND
بیتی
ترتیبی
نقطهبهنقطه
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر '&').
مثال:
[#1] image.jpg and {128+64}
[#2] image.jpg +mirror x and
argmax:
محاسبه
آرگومان
بیشینه (argmax)
تصویرهای
انتخابشده.
یک تصویر
واحد
بازمیگرداند
که مقدار هر
پیکسل آن،
شاخص تصویر
ورودی با
بیشترین
مقدار است.
مثال:
[#1] image.jpg sample lena,lion,square +argmax
argmaxabs:
محاسبه argmaxabs
تصویرهای
انتخابشده.
یک تصویر
واحد
بازمیگرداند
که مقدار هر
پیکسل آن،
شاخص تصویر
ورودی با
بیشترین
مقدار قدر
مطلق (maxabs) است.
argmin:
محاسبه
آرگومان
کمینه (argmin)
تصویرهای
انتخابشده.
یک تصویر
واحد
بازمیگرداند
که مقدار هر
پیکسل آن،
شاخص تصویر
ورودی با
کمترین
مقدار است.
مثال:
[#1] image.jpg sample lena,lion,square +argmin
argminabs:
محاسبه argminabs
تصویرهای
انتخابشده.
یک تصویر
واحد
بازمیگرداند
که مقدار هر
پیکسل آن،
شاخص تصویر
ورودی با
کمترین
مقدار قدر
مطلق (minabs) است.
asin (+):
محاسبه
آرکسینوس
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +normalize -1,1 asin[-1]
[#2] 300,1,1,1,'cut(x/w+0.1*u,0,1)' +asin display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
asinh (+):
محاسبه
آرکسینوس
هذلولوی
نقطهبهنقطه
تصویرهای
انتخابشده.
atan (+):
محاسبه
آرکتانژانت
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +normalize 0,8 atan[-1]
[#2] 300,1,1,1,'4*x/w+u' +atan display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
atan2 (+):
[x_argument]
محاسبه
آرکتانژانت
جهتدار
نقطهبهنقطه
تصویرهای
انتخابشده.
هر تصویر
انتخابشده
به عنوان
آرگومان y از
تابع
آرکتانژانت
در نظر
گرفته
میشود، در
حالی که
تصویر
مشخصشده
آرگومان x
متناظر را
ارائه
میدهد.
مثال:
[#1] (-1,1) (-1;1) resize 400,400,1,1,3 atan2[1] [0] keep[1] mod {pi/8}
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
atanh (+):
محاسبه
آرکتانژانت
هذلولوی
نقطهبهنقطه
تصویرهای
انتخابشده.
<< (+):
میانبری
برای دستور
'bsl'.
bsl (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
شیفت بیتی
به چپ
تصویرهای
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
شیفت بیتی
به چپِ
ترتیبی
نقطهبهنقطه
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر '<<').
مثال:
[#1] image.jpg bsl 'round(3*x/w,0)' cut 0,255
>> (+):
میانبری
برای دستور
'bsr'.
bsr (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
شیفت بیتی
به راست
تصویرهای
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
شیفت بیتی
به راستِ
ترتیبی
نقطهبهنقطه
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر '>>').
مثال:
[#1] image.jpg bsr 'round(3*x/w,0)' cut 0,255
cos (+):
محاسبه
کسینوس
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +normalize 0,{2*pi} cos[-1]
[#2] 300,1,1,1,'20*x/w+u' +cos display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
cosh (+):
محاسبه
کسینوس
هذلولوی
نقطهبهنقطه
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +normalize -3,3 cosh[-1]
[#2] 300,1,1,1,'4*x/w+u' +cosh display_graph 400,300
c (+):
میانبری
برای دستور
'cut'.
cut (+):
{ value0[%] | [image0] },{ value1[%] | [image1] } |
[image]
برش مقادیر
تصویرهای
انتخابشده
در بازه
مشخصشده.
(معادل با
دستور
میانبر 'c').
مثال:
[#1] image.jpg +add 30% cut[-1] 0,255
[#2] image.jpg +cut 25%,75%
deg2rad:
تبدیل
نقطهبهنقطه
مقادیر
زاویه در
تصویرهای
انتخابشده
از درجه به
رادیان
(اعمال 'i*pi/180').
/ (+):
میانبری
برای دستور
'div'.
div (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
تقسیم
تصویرهای
انتخابشده
بر مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
خارجقسمت
نقطهبهنقطه
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر '/').
مثال:
[#1] image.jpg div '1+abs(cos(x/10)*sin(y/10))'
[#2] image.jpg +norm add[-1] 1 +div
== (+):
میانبری
برای دستور
'eq'.
eq (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
برابری
بولی
تصویرهای
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
برابری
بولی
تصویرهای
انتخابشده.
(معادل با
دستور
میانبر
'==').مثال:
[#1] image.jpg round 40 eq {round(ia,40)}
[#2] image.jpg +mirror x eq
erf (+):
محاسبه
تابع خطای
نقطهبهنقطه
برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize 0,2 erf[-1]
[#2] 300,1,1,1,'7*x/w-3.5+u' +erf display_graph 400,300
exp (+):
محاسبه
تابع نمایی
نقطهبهنقطه
برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize 0,2 exp[-1]
[#2] 300,1,1,1,'7*x/w+u' +exp display_graph 400,300
>= (+):
میانبری
برای دستور
'ge'.
ge (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
مقدار بولی
'بزرگتر یا
مساوی'
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
مقدار بولی
'بزرگتر یا
مساوی' میان
تصاویر
انتخابشده.
(معادل
دستور
میانبر
'>=').
مثال:
[#1] image.jpg ge {ia}
[#2] image.jpg +mirror x ge
> (+):
میانبری
برای دستور
'gt'.
gt (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
مقدار بولی
'بزرگتر
از' تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
مقدار بولی
'بزرگتر
از' میان
تصاویر
انتخابشده.
(معادل
دستور
میانبر '>').
مثال:
[#1] image.jpg gt {ia}
[#2] image.jpg +mirror x gt
inrange:
min[%],max[%],_include_min_boundary={ 0:No | 1:Yes },_include_max_boundary={
0:No | 1:Yes }
تشخیص
پیکسلهایی
در تصاویر
انتخابشده
که مقادیر
آنها در
محدوده
مشخصشده '[min,max]'
قرار دارد.
(معادل
دستور
میانبر 'ir').
مقدار
پیشفرض:
'include_min_boundary=include_max_boundary=1'.
مثال:
[#1] image.jpg +inrange 25%,75%
isinf:
انتخاب
مقادیر 'inf'
در تصاویر
انتخابشده.
isnan:
انتخاب
مقادیر 'nan'
در تصاویر
انتخابشده.
<= (+):
میانبری
برای دستور
'le'.
le (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
مقدار بولی
'کوچکتر یا
مساوی'
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
مقدار بولی
'کوچکتر
یا مساوی'
میان
تصاویر
انتخابشده.
(معادل
دستور
میانبر
'<=').
مثال:
[#1] image.jpg le {ia}
[#2] image.jpg +mirror x le
< (+):
میانبری
برای دستور
'lt'.
lt (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
مقدار بولی
'کوچکتر
از' تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
مقدار بولی
'کوچکتر
از' میان
تصاویر
انتخابشده.
(معادل
دستور
میانبر '<').
مثال:
[#1] image.jpg lt {ia}
[#2] image.jpg +mirror x lt
log (+):
محاسبه
لگاریتم
نقطهبهنقطه
در مبنای e
برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +add 1 log[-1]
[#2] 300,1,1,1,'7*x/w+u' +log display_graph 400,300
log10 (+):
محاسبه
لگاریتم
نقطهبهنقطه
در مبنای ۱۰
برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +add 1 log10[-1]
[#2] 300,1,1,1,'7*x/w+u' +log10 display_graph 400,300
log2 (+):
محاسبه
لگاریتم
نقطهبهنقطه
در مبنای ۲
برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +add 1 log2[-1]
[#2] 300,1,1,1,'7*x/w+u' +log2 display_graph 400,300
max (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
بیشینه بین
تصاویر
انتخابشده
و مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
بیشینههای
نقطهبهنقطه
میان
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +mirror x max
[#2] image.jpg max 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R'
maxabs (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه maxabs
بین تصاویر
انتخابشده
و مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه maxabs
نقطهبهنقطه
میان
تصاویر
انتخابشده.
m/ (+):
میانبری
برای دستور
'mdiv'.
mdiv (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
تقسیم
ماتریسی
ماتریسها/بردارهای
انتخابشده
بر مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
تقسیم
ماتریسی
تصاویر
انتخابشده.
(معادل
دستور
میانبر 'm/').
med:
محاسبه
میانهٔ
تصاویر
انتخابشده.
مثال:
[#1] image.jpg sample lena,lion,square +med
min (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
کمینه بین
تصاویر
انتخابشده
و مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
کمینههای
نقطهبهنقطه
میان
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +mirror x min
[#2] image.jpg min 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R'
minabs (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه minabs
بین تصاویر
انتخابشده
و مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه minabs
نقطهبهنقطه
میان
تصاویر
انتخابشده.
% (+):
میانبری
برای دستور
'mod'.
mod (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه
باقیمانده
تقسیم (modulo)
تصاویر
انتخابشده
بر مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
باقیمانده
تقسیم
متوالی و
نقطهبهنقطه
میان
تصاویر
انتخابشده.
(معادل
دستور
میانبر '%').
مثال:
[#1] image.jpg +mirror x n. 1,255 round. mod
[#2] image.jpg mod 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R'
m* (+):
میانبری
برای دستور
'mmul'.
mmul (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
محاسبه ضرب
ماتریسی از
راست برای
ماتریسها/بردارهای
انتخابشده
در مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
ضرب
ماتریسی
از راست
برای
تصاویر
انتخابشده.
اگر تصویر
سمت راست
دارای
مقادیر
برداری
باشد، این
دستور هر
پیکسل
برداریمقدار
را در
ماتریس سمت
چپِ
مشخصشده
ضرب میکند.
(معادل
دستور
میانبر 'm*').
مثال:
[#1] (0,1,0;0,0,1;1,0,0) (1;2;3) +mmul
[#2] (0,1,0;0,0,1;1,0,0) image.jpg +mmul
* (+):
میانبری
برای دستور
'mul'.
mul (+):
value[%] |
[image] |
'formula' |
(بدون
آرگومان)
ضرب تصاویر
انتخابشده
در مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
حاصلضرب
نقطهبهنقطه
تصاویر
انتخابشده.
(معادل
دستور
میانبر '*').
همچنین
ببینید: add،
sub، div.
مثال:
[#1] image.jpg +mul 2 cut 0,255
[#2] image.jpg (1,2,3,4,5,6,7,8) ri[-1] [0] mul[0] [-1]
[#3] image.jpg mul '1-3*abs(x/w-0.5)' cut 0,255
[#4] image.jpg +luminance negate[-1] +mul!= (+):
میانبُری
برای دستور
'neq'.
neq (+):
value[%] |
[image] |
'formula' |
(no arg)
محاسبه
نابرابری
بولیِ
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
نابرابری
بولی
تصاویر
انتخابشده.
(معادل
دستور
میانبُر
'!=').
مثال:
[#1] image.jpg round 40 neq {round(ia,40)}
oneminus:
برای هر
تصویر
انتخابشده،
حاصل یک
منهای
تصویر (one minus image) را
محاسبه
میکند.
مثال:
[#1] image.jpg normalize 0,1 +oneminus
| (+):
میانبُری
برای دستور
'or'.
or (+):
value[%] |
[image] |
'formula' |
(no arg)
محاسبه OR
بیتی
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
پیکسلی و
متوالی OR
بیتی
تصاویر
انتخابشده.
(معادل
دستور
میانبُر
'|').
مثال:
[#1] image.jpg or 128
[#2] image.jpg +mirror x or
^ (+):
میانبُری
برای دستور
'pow'.
pow (+):
value[%] |
[image] |
'formula' |
(no arg)
به توان
رساندن
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
پیکسلی و
متوالی
توانهای
تصاویر
انتخابشده.
(معادل
دستور
میانبُر
'^').
مثال:
[#1] image.jpg div 255 +pow 0.5 mul 255
[#2] image.jpg gradient pow 2 add pow 0.2
rad2deg:
تبدیل
مقادیر
زاویه
پیکسلی
تصاویر
انتخابشده
از رادیان
به درجه
(اعمال 'i*180/pi').
rol (+):
value[%] |
[image] |
'formula' |
(no arg)
محاسبه
چرخش بیتی
به چپ
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
پیکسلی و
متوالی
چرخش بیتی
به چپ
تصاویر
انتخابشده.
مثال:
[#1] image.jpg rol 'round(3*x/w,0)' cut 0,255
ror (+):
value[%] |
[image] |
'formula' |
(no arg)
محاسبه
چرخش بیتی
به راست
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
پیکسلی و
متوالی
چرخش بیتی
به راست
تصاویر
انتخابشده.
مثال:
[#1] image.jpg ror 'round(3*x/w,0)' cut 0,255
sign (+):
محاسبه
علامت
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +sub {ia} sign[-1]
[#2] 300,1,1,1,'cos(20*x/w+u)' +sign display_graph 400,300
sin (+):
محاسبه
سینوس
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize 0,{2*pi} sin[-1]
[#2] 300,1,1,1,'20*x/w+u' +sin display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
sinc (+):
محاسبه
تابع sinc
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize {-2*pi},{2*pi} sinc[-1]
[#2] 300,1,1,1,'20*x/w+u' +sinc display_graph 400,300
sinh (+):
محاسبه
سینوس
هیپربولیک
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize -3,3 sinh[-1]
[#2] 300,1,1,1,'4*x/w+u' +sinh display_graph 400,300
softmax:
_temperature>0
محاسبه softmax
تصاویر
انتخابشده.
مقدار
پیشفرض:
'temperature=1'.
مثال:
[#1] 100,1,1,1,"x<w/2?x:w-x" +softmax 10 display_graph ,
softmin:
_temperature>0
محاسبه softmin
تصاویر
انتخابشده.
مقدار
پیشفرض:
'temperature=1'.
مثال:
[#1] 100,1,1,1,"x<w/2?x:w-x" +softmin 10 display_graph ,
sqr (+):
محاسبه
تابع توان
دوم (مربّع)
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +sqr
[#2] 300,1,1,1,'40*x/w+u' +sqr display_graph 400,300
sqrt (+):
محاسبه
ریشه دوم
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +sqrt
[#2] 300,1,1,1,'40*x/w+u' +sqrt display_graph 400,300
- (+):
میانبُری
برای دستور
'sub'.
sub (+):
value[%] |
[image] |
'formula' |
(no arg)
تفریق
مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده
از تصاویر
انتخابشده،
یا محاسبه
تفاضل
پیکسلی
تصاویر
انتخابشده.
(معادل
دستور
میانبُر
'-').
مثال:
[#1] image.jpg +sub 30% cut 0,255
[#2] image.jpg +mirror x sub[-1] [0]
[#3] image.jpg sub 'i(w/2+0.9*(x-w/2),y)'
[#4] image.jpg +mirror x sub
tan (+):
محاسبه
تانژانت
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize {-0.47*pi},{0.47*pi} tan[-1]
[#2] 300,1,1,1,'20*x/w+u' +tan display_graph 400,300
آموزش:
https://gmic.eu/oldtutorial/trigonometric-and-inverse-trigonometric-commands
tanh (+):
محاسبه
تانژانت
هیپربولیک
پیکسلی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +normalize -3,3 tanh[-1]
[#2] 300,1,1,1,'4*x/w+u' +tanh display_graph 400,300
xor (+):
value[%] |
[image] |
'formula' |
(no arg)
محاسبه XOR
بیتی
تصاویر
انتخابشده
با مقدار،
تصویر یا
عبارت
ریاضی
مشخصشده،
یا محاسبه
پیکسلی و
متوالی XOR
بیتی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg xor 128
[#2] image.jpg +mirror x xor
11.5. دستکاری
مقادیر (Values Manipulation)
---------------------------------------
apply_curve:
0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN
اعمال
تبدیل
منحنی روی
مقادیر
تصویر.
مقادیر
پیشفرض:
'smoothness=1', 'x0=0', 'y0=100'.
مثال:
[#1] image.jpg +apply_curve 1,0,0,128,255,255,0
apply_gamma:
gamma>=0
اعمال
تصحیح گاما
روی تصاویر
انتخابشده.
مثال:
[#1] image.jpg +apply_gamma 2
apply_mask:
"command",[opacity_mask],_max_opacity_mask
اعمال
دستور
مشخصشده
روی تصاویر
انتخابشده
اما تنها
درون ماسک
مشخصشده.
مقدار
پیشفرض:
'max_opacity_mask=1'.
مثال:
[#1] image.jpg 100%,100% noise. 10 blur. 2%,0 ge. 50% blur. 0.5% normalize.
0,1 +apply_mask.. "sepia whirls",[-1]
balance_gamma:
_ref_color1,...
محاسبه
تراز رنگ
تصحیحشده
با گاما در
تصویر
انتخابشده،
نسبت به رنگ
مرجع
مشخصشده.
مقدار
پیشفرض:
'ref_color1=128'.
مثال:
[#1] image.jpg +balance_gamma 128,64,64
cast:
datatype_source,datatype_target
تبدیل نوع
دادهٔ بافر
تصویر از
نوع مبدأ
مشخصشده
به نوع مقصد
مشخصشده.
'datatype_source' و 'datatype_target'
میتوانند
{ uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 |
float32 | float64
} باشند.complex2polar:
محاسبهٔ
تبدیل
مختلط به
قطبی برای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +fft complex2polar[-2,-1] log[-2] shift[-2] 50%,50%,0,0,2
remove[-1]
compress_clut:
فشردهسازی
LUTهای رنگیِ
انتخابشده
به صورت
توالیهایی
از نقاط
کلیدی
رنگی.
compress_huffman:
[huffman_tree],_max_leaf_value
فشردهسازی
تصاویر
انتخابشده
با کدگذاری
هافمن (Huffman).
همچنین
ببینید:
decompress_huffman، huffman_tree.
compress_rle:
_is_binary_data={ 0:No | 1:Yes },_maximum_sequence_length>=0
فشردهسازی
تصاویر
انتخابشده
به عنوان
ماتریسهای
دادهٔ 2xN، با
استفاده از
الگوریتم RLE.
برای
غیرفعال
کردن قید
حداکثر
طول، مقدار
'maximum_sequence_length=0' را
قرار دهید.
مقادیر
پیشفرض:
'is_binary_data=0' و 'maximum_sequence_length=0'.
مثال:
[#1] image.jpg rescale2d ,100 quantize 4 round +compress_rle ,
+decompress_rle[-1]
cumulate (+):
{ x | y | z | c }...{ x | y | z | c } |
(بدون
آرگومان)
محاسبهٔ
تابع تجمعی
دادههای
تصویر
مشخصشده،
اختیاراً
در امتداد
محورهای
تعیینشده.
مثال:
[#1] image.jpg +histogram 256 +cumulate[-1] display_graph[-2,-1]
400,300,3
decompress_clut:
_width>0,_height>0,_depth>0
فشردهگشایی
نقاط کلیدی
رنگیِ
انتخابشده
به CLUTهای
سهبُعدی،
با استفاده
از روش
ترکیبی RBF/PDE.
مقادیر
پیشفرض:
'width=height=depth=33' و
'reconstruction_colorspace=0'.
decompress_from_keypoints:
_width>0,_height>0,_depth>0 |
(بدون
آرگومان)
فشردهگشایی
مجموعههای
انتخابشده
از نقاط
کلیدی به
صورت تصویر
(اختیاراً
با اندازهٔ
مشخص).
یک مجموعه
از نقاط
کلیدی به
صورت یک
تصویر با
مقادیر
برداری
تعریف
میشود، به
طوری که:
* نخستین
پیکسل،
برداری است
که '[ Width,Height,Depth ]'
تصویر
فشردهگشاییشده
را کدگذاری
میکند.
* دومین
پیکسل،
برداری است
که '[ Min,Max,Use_RBF ]' را
کدگذاری
میکند، که
در آن 'Min' و 'Max'
بازهٔ
مقادیر
تصویر
فشردهگشاییشده
را مشخص
میکنند و
'Use_RBF' تعیین
میکند که
آیا طرح
فشردهگشایی
باید از RBF
استفاده
کند ('Use_RBF=1') یا
از PDEهای
انتشار
چندمقیاسی
('Use_RBF=0').
* باقی
پیکسلها
مختصات و
مقادیر
نقاط کلیدی
را مشخص
میکنند،
به صورت:
- '[ x_k,y_k,z_k, v1_k,...,vN_k ]' برای
یک تصویر
هدف
سهبُعدی
از
بردارهای
N-مقداری.
- '[ x_k,y_k, v1_k,...,vN_k ]' برای
یک تصویر
هدف
دوبُعدی از
بردارهای
N-مقداری.
- '[ x_k, v1_k,...,vN_k ]' برای یک
تصویر هدف
یکبُعدی
از
بردارهای
N-مقداری.
که در آن
مختصات 'x_k'،
'y_k' و 'z_k' به
ترتیب در
بازههای
'[0,Width-1]'، '[0,Height-1]' و
'[0,Depth-1]' تعریف
شدهاند.
اگر
آرگومانهای
'width'، 'height' و 'depth'
ارائه
شوند،
اندازهٔ
تصویر
فشردهگشاییشده
را مشخص
میکنند و
بدین ترتیب
اندازهٔ
اصلی تصویر '[
Width,Height,Depth ]'
تعریفشده
در سرآیند
نقاط کلیدی
را
بازنویسی
مینمایند.
decompress_huffman:
[huffman_tree]
فشردهگشایی
تصاویر
انتخابشده
با کدگشایی
هافمن (Huffman).
همچنین
ببینید:
compress_huffman، huffman_tree.
مثال:
[#1] image.jpg huffman_tree compress_huffman.. . +decompress_huffman.. .
decompress_rle:
فشردهگشایی
بردارهای
دادهٔ
انتخابشده
با استفاده
از
الگوریتم RLE.
discard (+):
_value1,_value2,... |
{ x | y | z | c}...{ x | y | z | c},_value1,_value2,... |
(بدون
آرگومان)
حذف مقادیر
مشخصشده
در تصاویر
انتخابشده
یا حذف
مقادیر
تکراری
مجاور،
اختیاراً
فقط برای
مقادیر در
امتداد
نخستین
محور
مشخصشده.
اگر هیچ
آرگومانی
مشخص نشود،
مقادیر
تکراری
مجاور حذف
میشوند.
اگر تمام
پیکسلهای
یک تصویر
انتخابشده
حذف شوند،
یک تصویر
خالی
بازگردانده
میشود.
مثال:
[#1] (1;2;3;4;3;2;1) +discard 2
[#2] (1,2,2,3,3,3,4,4,4,4) +discard x
eigen2tensor:
بازترکیب
جفتهای
مقادیر
ویژه/بردارهای
ویژهٔ
انتخابشده
به عنوان
میدانهای
تانسوری 2x2
یا 3x3.
Tutorial: https://gmic.eu/tutorial/eigen2tensor
endian (+):
_datatype
معکوس کردن
ترتیب
بایتهای
(endianness) داده در
تصاویر
انتخابشده،
با در نظر
گرفتن
اختیاری
اینکه
پیکسل از
نوع دادهٔ
مشخصشده
است.
'datatype'
میتواند { bool |
uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 | float32 |
float64 } باشد.
این دستور
برای انواع
دادهٔ 'bool'،
'uint8' و 'int8' کاری
انجام
نمیدهد.
equalize (+):
_nb_levels[%]>0,_value_min[%],_value_max[%] |
(بدون
آرگومان)
متعادلسازی
هیستوگرامهای
تصاویر
انتخابشده.
اگر بازهٔ
مقادیر
تعیین شده
باشد،
متعادلسازی
فقط برای
پیکسلهای
درون بازهٔ
مشخصشده
انجام
میشود.
مقادیر
پیشفرض:
'nb_levels=256'، 'value_min=0%' و
'value_max=100%'.
مثال:
[#1] image.jpg +equalize
[#2] image.jpg +equalize 4,0,128
f (+):
میانبُری
برای دستور
'fill'.
fill (+):
value1,_value2,... |
[image] |
'formula'
پر کردن
تصاویر
انتخابشده
با مقادیر
خواندهشده
از فهرست
مقادیر
مشخصشده،
تصویر
موجود
یا عبارت
ریاضی.
علامتهای
نقلقول
تکی در 'formula'
میتوانند
حذف شوند.
(معادل
دستور
میانبُر
'f').
مثال:
[#1] 4,4 fill 1,2,3,4,5,6,7
[#2] 4,4 (1,2,3,4,5,6,7) fill[-2] [-1]
[#3] 400,400,1,3 fill "X=x-w/2; Y=y-h/2; R=sqrt(X^2+Y^2); a=atan2(Y,X);
R<=180?255*abs(cos(c+200*(x/w-0.5)*(y/h-0.5))):850*(a%(0.1*(c+1)))"
آموزش:
https://gmic.eu/tutorial/fill
icp:
[reference],_affine_mode,_precision>0,_iter_max>=0
اعمال
تبدیل
همگریک
(آفین) روی
نقاط با
مقادیر
برداری در
تصاویر
انتخابشده،
برای تطبیق
با مجموعهٔ
مشخصشده
از
بردارهای
مرجع، با
استفاده از
الگوریتم ICP
(Iterative Closest Point).
توضیحی
دربارهٔ ICP
در
https://en.wikipedia.org/wiki/Iterative_closest_point
در دسترس
است.
آرگومان 'affine_mode'
نوع تبدیل
آفین
اعمالشده
را مشخص
میکند.
میتواند
شامل موارد
زیر باشد: { 0:Free |
1:Rotation+Scaling | 2:Rotation-Only }.
مقادیر
پیشفرض:
'affine_mode=0'، 'precision=1e-3' و
'iter_max=1000'.
index (+):
{ [palette] | palette_name },0<=_dithering<=1,_map_colors={ 0:No |
1:Yes }
نمایهسازی
تصاویر
برداری
انتخابشده
با استفاده
از پالت
برداری
مشخصشده.
'palette_name'
میتواند {
default | hsv | lines | hot | cool | jet | flag | cube | rainbow | algae |
amp |balance | curl | deep | delta |
dense | diff | haline | ice | matter | oxy | phase | rain | solar | speed
| tarn |tempo | thermal | topo | turbid | aurora | hocuspocus | srb2 |
uzebox } باشد.
مقادیر
پیشفرض:
'dithering=0' و 'map_colors=0'.
مثال:
[#1] image.jpg +index 1,1,1
[#2] image.jpg (0;255;255^0;128;255^0;0;255) +index[-2] [-1],1,1
آموزش:
https://gmic.eu/tutorial/gindex
ir:
میانبُری
برای دستور
'inrange'.
map (+):
[palette],_boundary_conditions |
palette_name,_boundary_conditions
نگاشت پالت
برداری
مشخصشده
به تصاویر
نمایهشدهٔ
انتخابشده.
هر تصویر
خروجی
دارای 'M*N'
کانال است
که در آن 'M' و
'N' به ترتیب
تعداد
کانالهای
تصویر
ورودی
متناظر و
تصویر 'palette'
هستند.
'palette_name'
میتواند {
default | hsv | lines | hot | cool | jet | flag | cube | rainbow | algae |
amp | balance | curl | deep | delta |
dense | diff | gray | haline | ice | matter | oxy | phase | rain | random
| solar | speed | tarn | tempo | thermal | topo | turbid | aurora |
hocuspocus | srb2 | uzebox } باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'boundary_conditions=0'.
مثال:
[#1] image.jpg +luminance map[-1] 3
[#2] image.jpg +rgb2ycbcr split[-1] c (0,255,0) resize[-1] 256,1,1,1,3
map[-4] [-1] remove[-1] append[-3--1] c ycbcr2rgb[-1]
آموزش:
https://gmic.eu/tutorial/map
mix_channels:
(a00,...,aMN) |
[matrix]
اعمال
ماتریس
مشخصشده
به
کانالهای
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +mix_channels (0,1,0;1,0,0;0,0,1)
negate:
base_value |
(بدون
آرگومان)
منفی (معکوس)
کردن
مقادیر
تصویر.
مقدار
پیشفرض:
'base_value=(undefined)'.
مثال:
[#1] image.jpg +negate
noise (+):
amplitude[%]>=0,_noise_type
افزودن
نویز
تصادفی به
تصاویر
انتخابشده.
'noise_type'
میتواند {
0:Gaussian | 1:Uniform | 2:Salt&pepper | 3:Poisson | 4:Rice }
باشد.
مقدار
پیشفرض:
'noise_type=0'.
مثال:
[#1] image.jpg +noise[0] 50,0 +noise[0] 50,1 +noise[0] 10,2 cut 0,255
[#2] 300,300,1,3 [0] noise[0] 20,0 noise[1] 20,1 +histogram 100
display_graph[-2,-1] 400,300,3
noise_hurl:
_amplitude>=0
افزودن
نویز
پرتابی (hurl) به
تصاویر
انتخابشده.
مقدار
پیشفرض:
'amplitude=10'.
مثال:
[#1] image.jpg +noise_hurl ,
noise_perlin:
_scale_x[%]>0,_scale_y[%]>0,_scale_z[%]>0,_seed_x,_seed_y,_seed_z
رندر نویز
پرلین (Perlin noise)
دوبُعدی یا
سهبُعدی
روی تصاویر
انتخابشده،
از مختصات
مشخصشده.
نویز پرلین
نوع خاصی از
نویز هموار
است،
که در اینجا
شرح داده
شده است:
https://en.wikipedia.org/wiki/Perlin_noise.
مقادیر
پیشفرض:
'scale_x=scale_y=scale_z=16' و
'seed_x=seed_y=seed_z=0'.
مثال:
[#1] 500,500,1,3 noise_perlin ,
noise_poissondisk:
_radius[%]>0,_max_sample_attempts>0,_p_norm>0
افزودن
نویز
نمونهبرداری
دیسک
پواسون (poisson disk sampling)
به تصاویر
انتخابشده.
پیادهسازی
الگوریتم
ارائهشده
در مقالهٔ
«Fast Poisson Disk Sampling in Arbitrary Dimensions»،
نوشتهٔ Robert Bridson
در SIGGRAPH'2007.
مقادیر
پیشفرض:
'radius=8'، 'max_sample_attempts=30' و
'p_norm=2'.
مثال:
[#1] 300,300 noise_poissondisk 8normp:
p>=0
نُرم
نقطهبهنقطه
Lp پیکسلهای
برداری در
تصاویر
انتخابشده
را محاسبه
میکند.
مقدار
پیشفرض:
'p=2'.
مثال:
[#1] image.jpg +normp[0] 0 +normp[0] 1 +normp[0] 2 +normp[0] inf
norm1:
نُرم L1
نقطهبهنقطه
پیکسلهای
برداری در
تصاویر
انتخابشده
را محاسبه
میکند.
مثال:
[#1] image.jpg +norm1
آموزش:
https://gmic.eu/tutorial/norm1
norm:
میانبُری
برای دستور
'norm2'.
norm2:
نُرم L2
نقطهبهنقطه
(نُرم
اقلیدسی)
پیکسلهای
برداری در
تصاویر
انتخابشده
را محاسبه
میکند.
مثال:
[#1] image.jpg +norm
آموزش:
https://gmic.eu/tutorial/norm2
n (+):
میانبُری
برای دستور
'normalize'.
normalize (+):
{ value0[%] | [image0] },{ value1[%] | [image1] },_constant_case_ratio |
[image]
مقادیر
تصاویر
انتخابشده
را بهصورت
خطی در بازه
مشخصشده
نرمالسازی
میکند.
(معادل
دستور
میانبُر
'n').
مثال:
[#1] image.jpg split x,2 normalize[-1] 64,196 append x
آموزش:
https://gmic.eu/tutorial/normalize
normalize_l2:
تصاویر
انتخابشده
را
بهگونهای
نرمالسازی
میکند که
دارای نُرم L2
یکه باشند.
normalize_sum:
تصاویر
انتخابشده
را
بهگونهای
نرمالسازی
میکند که
مجموع
مقادیر
آنها
برابر با یک
شود.
مثال:
[#1] image.jpg +histogram 256 normalize_sum[-1] display_graph[-1] 400,300
orientation:
جهت
نقطهبهنقطه
پیکسلهای
برداری در
تصاویر
انتخابشده
را محاسبه
میکند.
مثال:
[#1] image.jpg +orientation +norm[-2] negate[-1] mul[-2] [-1]
reverse[-2,-1]
آموزش:
https://gmic.eu/tutorial/orientation
otsu:
_nb_levels>0
تصاویر
انتخابشده
را با
استفاده از
روش Otsu
بهصورت
سخت
آستانهگذاری
میکند.
آستانههای
محاسبهشده
بهصورت
فهرستی از
مقادیر در
وضعیت (status)
برگردانده
میشوند.
مقدار
پیشفرض:
'nb_levels=256'.
مثال:
[#1] image.jpg luminance +otsu ,
polar2complex:
تبدیل قطبی
به مختلط
تصاویر
انتخابشده
را محاسبه
میکند.
quantize:
nb_levels>=1,_keep_values={ 0:No | 1:Yes },_quantization_type={
-1:Median-cut | 0:K-means | 1:Uniform }
تصاویر
انتخابشده
را
کوانتایز
میکند.
مقدار
پیشفرض:
'keep_values=1' و 'quantization_type=0'.
مثال:
[#1] image.jpg luminance +quantize 3
[#2] 200,200,1,1,'cos(x/10)*sin(y/10)' +quantize[0] 6 +quantize[0] 4
+quantize[0] 3 +quantize[0] 2
quantize_area:
_min_area>0
تصاویر
انتخابشده
را طوری
کوانتایز
میکند که
هر ناحیه
یکدست
مساحتی
بزرگتر یا
مساوی با 'min_area'
داشته
باشد.
مقدار
پیشفرض:
'min_area=10'.
مثال:
[#1] image.jpg quantize 3 +blur 1 round[-1] +quantize_area[-1] 2
rand (+):
{ value0[%] | [image0] },_{ value1[%] | [image1] },_[pdf],_precision[%] |
[image]
تصاویر
انتخابشده
را با
مقادیر
تصادفی در
بازه
مشخصشده
پر میکند.
اگر هیچ '[pdf]'
(تابع چگالی
احتمال)
مشخص نشده
باشد،
مقادیر
تصادفی از
یک توزیع
یکنواخت
پیروی
میکنند.
آرگومان 'precision'
تعداد
مقادیر
متمایزی را
مشخص
میکند که
در صورت
تعیین یک '[pdf]'
میتوانند
تولید
شوند.
مثال:
[#1] 400,400,1,3 rand -10,10 +blur 10 sign[-1]
[#2] (8,2,1) 50,50 rand[-1] 0,255,[-2]
[#3] 256 gaussian[-1] 30 line[-1] 47%,0,53%,0,1,0 500,500 rand[-1] 0,255,[-2]
+histogram[-1] 256 display_graph[0,2] 640,480,3,0
rand_sum:
sum>0,_random_function
تصاویر
انتخابشده
را با
مقادیر
صحیح،
تصادفی و
اکیداً
مثبت پر
میکند که
مجموع
آنها
برابر با 'sum'
است.
برای هر
تصویر، 'sum'
باید
بزرگتر یا
مساوی با
'width*height*depth*spectrum' باشد.
مقدار
پیشفرض:
'random_function=u'.
مثال:
[#1] 100 rand_sum 1000
replace:
source,target
مقادیر
پیکسلها
را در
تصاویر
انتخابشده
جایگزین
میکند.
مثال:
[#1] (1;2;3;4) +replace 2,3
replace_inf:
_expression
تمام
مقادیر
بینهایت
در تصاویر
انتخابشده
را با عبارت
مشخصشده
جایگزین
میکند.
مثال:
[#1] (0;1;2) log +replace_inf 2
replace_infnan:
_expression
تمام
مقادیر NaN و
بینهایت
در تصاویر
انتخابشده
را با عبارت
مشخصشده
جایگزین
میکند.
replace_nan:
_expression
تمام
مقادیر NaN در
تصاویر
انتخابشده
را با عبارت
مشخصشده
جایگزین
میکند.
مثال:
[#1] (-1;0;2) sqrt +replace_nan 2
replace_seq:
"search_seq","replace_seq"
یک توالی از
مقادیر را
در تصاویر
انتخابشده
جستجو و
جایگزین
میکند.
مثال:
[#1] (1;2;3;4;5) +replace_seq "2,3,4","7,8"
replace_str:
"search_str","replace_str"
یک رشته را
در تصاویر
انتخابشده
جستجو و
جایگزین
میکند (در
حالی که
بهصورت
رشته، یعنی
توالیهایی
از کدهای
نویسه دیده
میشوند).
مثال:
[#1] ('"Hello there, how are you ?"') +replace_str "Hello
there","Hi David"
round (+):
rounding_value>=0,_rounding_type |
(no arg)
مقادیر
تصاویر
انتخابشده
را گرد
میکند.
'rounding_type'
میتواند {
-1:Backward | 0:Nearest | 1:Forward }
باشد.
مقدار
پیشفرض:
'rounding_type=0'.
مثال:
[#1] image.jpg +round 100
[#2] image.jpg mul {pi/180} sin +round
roundify:
gamma>=0
تبدیل
گردسازی (roundify)
را با گامای
مشخصشده
روی
دادههای
ممیز شناور
اعمال
میکند.
مقدار
پیشفرض:
'gamma=0'.
مثال:
[#1] 1000 fill '4*x/w' repeat 5 { +roundify[0] {$>*0.2} } append c
display_graph 400,300
= (+):
میانبُری
برای دستور
'set'.
set (+):
value,_x[%],_y[%],_z[%],_c[%]
مقدار
پیکسل در
تصاویر
انتخابشده
را در
مختصات
مشخصشده
تنظیم
میکند.
(معادل
دستور
میانبُر
'=').
اگر مختصات
مشخصشده
خارج از
مرزهای
تصویر
باشد، هیچ
عملی انجام
نمیشود.
مقادیر
پیشفرض:
'x=y=z=c=0'.
مثال:
[#1] 2,2 set 1,0,0 set 2,1,0 set 3,0,1 set 4,1,1
[#2] image.jpg repeat 10000 { set 255,{u(100)}%,{u(100)}%,0,{u(100)}% }
threshold:
value[%],_is_soft_thresholding={ 0:No | 1:Yes }
مقادیر
تصاویر
انتخابشده
را
آستانهگذاری
میکند.
'soft'
میتواند {
0:Hard-thresholding | 1:Soft-thresholding }
باشد.
مقدار
پیشفرض:
'is_soft=0'.
مثال:
[#1] image.jpg +threshold[0] 50% +threshold[0] 50%,1
آموزش:
https://gmic.eu/tutorial/threshold
unitnorm:
_p>=0
نُرم Lp
نقطهبهنقطه
را در
تصاویر
انتخابشده
محاسبه
میکند.
مقدار
پیشفرض:
'p=2'.
مثال:
[#1] image.jpg +unitnorm 2
vector2tensor:
میدانهای
برداری
انتخابشده
را به
میدانهای
تانسوری
متناظر
تبدیل
میکند.
11.6. رنگها (Colors)
------
adjust_colors:
-100<=_brightness<=100,-100<=_contrast<=100,-100<=_gamma<=100,-100<=_hue_shift<=100,-100<=_saturation<=100,_value_min,_value_max
تنظیم
سراسری
رنگها را
روی تصاویر
انتخابشده
انجام
میدهد.
بازه
مقادیر
صحیح تصویر
در [value_min,value_max] در
نظر گرفته
میشود
(برای مثال [0,255]).
اگر 'value_min==value_max==0'
باشد، بازه
مقادیر از
مقادیر
کمینه/بیشینه
تصاویر
انتخابشده
برآورد
میشود.
تصاویر
پردازششده
مقادیر
پیکسلی
محدودشده
در [value_min,value_max]
خواهند
داشت.
مقادیر
پیشفرض:
'brightness=0', 'contrast=0', 'gamma=0',
'hue_shift=0', 'saturation=0',
'value_min=value_max=0'.مثال:
[#1] image.jpg +adjust_colors 0,30,0,0,30
ac:
میانبری
برای دستور
'apply_channels'.
apply_channels:
"command",color_channels,_value_action={ 0:None | 1:Cut |
2:Normalize }
اعمال
دستور
مشخصشده
روی
کانال(های)
رنگی
انتخابشده
از هر تصویر
برگزیده.
(معادل
دستور
میانبر 'ac').
آرگومان
'color_channels' به یک
فضای رنگی
اشاره دارد
و اصولاً
میتواند
یکی از
موارد
{ all | rgba | [s]rgb | ryb | lrgb | ycbcr | lab | lch | hsv | hsi | hsl |
cmy | cmyk | yiq } باشد.
همچنین
میتوانید
با تنظیم
'color_channels'
بهصورت
'colorspace_channel' (برای
نمونه 'hsv_h'
برای فام
رنگ)،
پردازش را
بر روی چند
کانال مشخص
از این فضای
رنگی
متمرکز
کنید.
تمام
مقادیر
کانالها
در بازه [0,255] در
نظر گرفته
میشوند.
مقدار
پیشفرض:
'value_action=0'.
مثال:
[#1] image.jpg +apply_channels "equalize blur 2",ycbcr_cbcr
autoindex:
nb_colors>0,0<=_dithering<=1,_method={ 0:Median-cut | 1:K-means
}
نمایهسازی
تصاویر
دارای
مقادیر
برداری
انتخابشده
با
نقشههای
رنگی
تطبیقیافته.
مقادیر
پیشفرض:
'dithering=0' و 'method=1'.
مثال:
[#1] image.jpg +autoindex[0] 4 +autoindex[0] 8 +autoindex[0] 16
bayer2rgb:
_GM_smoothness,_RB_smoothness1,_RB_smoothness2
تبدیل
تصاویر
نمونهبرداریشدهی
RGB-Bayer
انتخابشده
به تصاویر
رنگی.
مقادیر
پیشفرض:
'GM_smoothness=RB_smoothness=1' و
'RB_smoothness2=0.5'.
مثال:
[#1] image.jpg rgb2bayer 0 +bayer2rgb 1,1,0.5
brightness:
strength
تغییر
کنتراست
تصاویر
انتخابشده،
با شدت
مشخصشده.
* اگر 'strength' مثبت
باشد،
روشنایی
تصویر
تقویت
میشود.
* اگر 'strength' منفی
باشد،
روشنایی
تصویر کاهش
مییابد.
بازه
مقادیر
متداول
برای
پارامتر 'strength'
برابر [-100,100]
است.
مثال:
[#1] image.jpg +brightness 20
clut:
"clut_name",_resolution>0,_cut_and_round={ 0:No | 1:Yes }
درج یکی از 1189
جدول رنگی CLUT
از پیش
تعریفشده
در انتهای
فهرست
تصاویر.
'clut_name'
میتواند {
12_years_a_slave | 1917 | 2-strip-process | 400_ft | 60s | 60s_faded |
60s_faded_alt | 7drk_21 | action_magenta_01 |
action_red_01 | ad_astra | adventure_1453 | aerospace | agfa_apx_100 |
agfa_apx_25 | agfa_precisa_100 | agfa_ultra_color_100 | agfa_vista_200 |
agressive_highligjtes_recovery_5 | airdrop | aladdin | alberto_street |
alien_green | ampio | amstragram | amstragram+ | analog_film_1 |
analogfx_anno_1870_color | analogfx_old_style_i | analogfx_old_style_ii |
analogfx_old_style_iii | analogfx_sepia_color | analogfx_soft_sepia_i |
analogfx_soft_sepia_ii | anime | ant-man | apocalypse_this_very_moment |
aqua | aqua_and_orange_dark | aquaman | arabica_12 | asistas | atomic_pink
|
atusa | autumn | autumn_leaves | ava_614 | avalanche | avengers_endgame |
azrael_93 | baby_driver | bad_boys_for_life | basuco | bboyz_2 |
bc_darkum
| beach_aqua_orange | beach_faded_analog | beati | beauty_and_the_beast |
berlin_sky | bisogno | black_and_white | black_panther | black_star |
black_white_01 | black_white_02 | black_white_03 | black_white_04 |
black_white_05 | black_white_06 | blade_runner | bleach_bypass |
bleachbypass_1 |
bleachbypass_2 | bleachbypass_3 | bleachbypass_4 | bleech_bypass_green |
bleech_bypass_yellow_01 | blue_cold_fade | blue_dark | blue_house |
blue_ice
| blue_love_39 | blue_mono | blue_shadows_01 | bluearchitecture | bluehour
| blues | bob_ford | bohemian_rhapsody | bombshell | bourbon_64 | boyado
|
bright_green_01 | bright_teal_orange | bright_warm | brightgreen |
brown_mobster | brownbm | brownish | bw_1 | bw_10 | bw_2 | bw_3 | bw_4 |
bw_5 |
bw_6 | bw_7 | bw_8 | bw_9 | bw_but_yellow | byers_11 | calidum |
candlelight | captain_marvel | caribe | chemical_168 | chrome_01 | cine-1 |
cine-10
| cine-11 | cine-12 | cine-13 | cine-14 | cine-15 | cine-16 | cine-17 |
cine-18 | cine-19 | cine-2 | cine-20 | cine-21 | cine-22 | cine-23 |
cine-24
| cine-25 | cine-26 | cine-27 | cine-28 | cine-29 | cine-3 | cine-30 |
cine-4 | cine-5 | cine-6 | cine-7 | cine-8 | cine-9 | cineblue | cinebm_4k
|
cinema | cinema_2 | cinema_3 | cinema_4 | cinema_5 | cinema_noir |
cinematic-1 | cinematic-10 | cinematic-2 | cinematic-3 | cinematic-4 |
cinematic-5
| cinematic-6 | cinematic-7 | cinematic-8 | cinematic-9 | cinematic_01 |
cinematic_02 | cinematic_03 | cinematic_04 | cinematic_05 | cinematic_06
|
cinematic_07 | cinematic_for_flog | cinematic_forest | cinematic_lady_bird
| cinematic_mexico | city | city_7 | city_dust | city_of_god |
classic_films_01 | classic_films_02 | classic_films_03 | classic_films_04
| classic_films_05 | classic_teal_and_orange | clayton_33 | clear |
clear_teal_fade | clouseau_54 | cobi_3 | coffee_44 | cold_clear_blue |
cold_clear_blue_1 | cold_ice | cold_simplicity_2 | coldchrome | color_rich
|
colore | colorful_0209 | colornegative | conflict_01 | contrail_35 |
contrast_with_highlights_protection | contrasty_afternoon | contrasty_green
|
convold | cosa | creed_2 | crispautumn | crispromance | crispwarm |
crispwinter | cross_process_cp_130 | cross_process_cp_14 |
cross_process_cp_15 |
cross_process_cp_16 | cross_process_cp_18 | cross_process_cp_3 |
cross_process_cp_4 | cross_process_cp_6 | crushin | cubicle_99 | culor |
d_o_1 |
dark_blues_in_sunlight | dark_green_02 | dark_green_1 | dark_man_x |
dark_orange_teal | dark_place_01 | darkandsomber | darkness | date_39 |
day_4nite | day_for_night | day_to_night_kings_blue | deep | deep_blue |
deep_dark_warm | deep_high_contrast | deep_teal_fade | deep_warm_fade |
deepskintones_2 | deepskintones_3 | delicatessen | denoiser_simple_40 |
desert_gold_37 | dimension | dimmer | directions_23 | django_25 |
doctor_strange | domingo_145 | dream_1 | dream_85 | drop_green_tint_14 |
dropblues | dunkirk | duotone_blue_red | earth_tone_boost | eda_0_2 |
edgyember | elegance_38 | enchanted | ensaya | eterna_for_flog |
expired_69 | expired_fade | expired_polaroid | extreme | fade |
fade_to_green |
faded | faded_47 | faded_alt | faded_analog | faded_extreme | faded_green
| faded_pink-ish | faded_print | faded_retro_01 | faded_retro_02 |
faded_vivid | fadedlook | fallcolors | falua | farkling | fatos |
faux_infrared | faux_infrared_bw_1 | faux_infrared_color_p_2 |
faux_infrared_color_p_3 | faux_infrared_color_r_0a |
faux_infrared_color_r_0b | faux_infrared_color_yp_1 | fezzle | fg_cinebasic
| fg_cinebright |
fg_cinecold | fg_cinedrama | fg_cinetealorange_1 | fg_cinetealorange_2 |
fg_cinevibrant | fg_cinewarm | fgcinebasic | fgcinebright | fgcinecold |
fgcinedrama | fgcinetealorange_1 | fgcinetealorange_2 | fgcinevibrant |
fgcinewarm | fight_club | film_0987 | film_9879 | film_gb-19 |
film_high_contrast | film_print_01 | film_print_02 | filmic | filo |
flat_30 | flat_blue_moon | flavin | flog_to_rec_709 | foggynight | folger_50
|
ford_v_ferrari | foresta | formula_b | french_comedy | frosted |
frostedbeachpicnic | fuji_160c | fuji_160c_+ | fuji_160c_++ | fuji_160c_-
|
fuji_3510_constlclip | fuji_3510_constlmap | fuji_3510_cuspclip |
fuji_3513_constlclip | fuji_3513_constlmap | fuji_3513_cuspclip | fuji_400h
|
fuji_400h_+ | fuji_400h_++ | fuji_400h_- | fuji_800z | fuji_800z_+ |
fuji_800z_++ | fuji_800z_- | fuji_astia_100_generic | fuji_astia_100f |
fuji_fp-100c | fuji_fp-100c_+ | fuji_fp-100c_++ | fuji_fp-100c_+++ |
fuji_fp-100c_++_alt | fuji_fp-100c_- | fuji_fp-100c_-- | fuji_fp-100c_alt
|
fuji_fp-100c_cool | fuji_fp-100c_cool_+ | fuji_fp-100c_cool_++ |
fuji_fp-100c_cool_- | fuji_fp-100c_cool_-- | fuji_fp-100c_negative |
fuji_fp-100c_negative_+ | fuji_fp-100c_negative_++ |
fuji_fp-100c_negative_+++ | fuji_fp-100c_negative_++_alt |
fuji_fp-100c_negative_- |
fuji_fp-100c_negative_-- | fuji_fp-3000b | fuji_fp-3000b_+ |
fuji_fp-3000b_++ | fuji_fp-3000b_+++ | fuji_fp-3000b_- | fuji_fp-3000b_--
|
fuji_fp-3000b_hc | fuji_fp-3000b_negative | fuji_fp-3000b_negative_+ |
fuji_fp-3000b_negative_++ | fuji_fp-3000b_negative_+++ |
fuji_fp-3000b_negative_- | fuji_fp-3000b_negative_-- |
fuji_fp-3000b_negative_early | fuji_fp_100c | fuji_hdr | fuji_neopan_1600 |
fuji_neopan_1600_+
| fuji_neopan_1600_++ | fuji_neopan_1600_- | fuji_neopan_acros_100 |
fuji_provia_100_generic | fuji_provia_100f | fuji_provia_400f |
fuji_provia_400x
| fuji_sensia_100 | fuji_superia_100 | fuji_superia_100_+ |
fuji_superia_100_++ | fuji_superia_100_- | fuji_superia_1600 |
fuji_superia_1600_+ |
fuji_superia_1600_++ | fuji_superia_1600_- | fuji_superia_200 |
fuji_superia_200_xpro | fuji_superia_400 | fuji_superia_400_+ |
fuji_superia_400_++ |
fuji_superia_400_- | fuji_superia_800 | fuji_superia_800_+ |
fuji_superia_800_++ | fuji_superia_800_- | fuji_superia_hg_1600 |
fuji_superia_reala_100
| fuji_superia_x-tra_800 | fuji_velvia_100_generic | fuji_velvia_50 |
fuji_xtrans_iii_acros | fuji_xtrans_iii_acros+g | fuji_xtrans_iii_acros+r
|
fuji_xtrans_iii_acros+ye | fuji_xtrans_iii_astia |
fuji_xtrans_iii_classic_chrome | fuji_xtrans_iii_mono |
fuji_xtrans_iii_mono+g |
fuji_xtrans_iii_mono+r | fuji_xtrans_iii_mono+ye |
fuji_xtrans_iii_pro_neg_hi | fuji_xtrans_iii_pro_neg_std |
fuji_xtrans_iii_provia |
fuji_xtrans_iii_sepia | fuji_xtrans_iii_velvia | fusion_88 |
futuristicbleak_1 | futuristicbleak_2 | futuristicbleak_3 |
futuristicbleak_4 |
going_for_a_walk | golden | golden_bright | golden_fade | golden_mono |
golden_night_softner_43 | golden_sony_37 | golden_vibrant | goldengate |
goldentime | goldfx_bright_spring_breeze | goldfx_bright_summer_heat |
goldfx_hot_summer_heat | goldfx_perfect_sunset_01min |
goldfx_perfect_sunset_05min | goldfx_perfect_sunset_10min |
goldfx_spring_breeze | goldfx_summer_heat | good_morning | green_15 |
green_2025 |
green_action | green_afternoon | green_and_orange | green_blues |
green_book | green_conflict | green_day_01 | green_day_02 | green_g_09 |
green_indoor | green_light | green_mono | green_yellow |
greenish_contrasty | greenish_fade | greenish_fade_1 | gremerta | greyhound
| hackmanite |
hallowen_dark | happyness_133 | hard_teal_orange | hardboost | harsh_day |
harsh_sunset | helios | herderite | heulandite | hiddenite |
highlights_protection | hilutite | hitman | hlg_1_1 | honey_light |
hong_kong | horrorblue | howlite | huesio | husmes | huyan | hydracore |
hyla_68
| hypersthene | hypnosis | hypressen | i_tonya | ideo | ilford_delta_100 |
ilford_delta_3200 | ilford_delta_3200_+ | ilford_delta_3200_++ |
ilford_delta_3200_- | ilford_delta_400 | ilford_fp_4_plus_125 |
ilford_hp_5 | ilford_hp_5_+ | ilford_hp_5_++ | ilford_hp_5_- |
ilford_hp_5_plus_400 |
ilford_hps_800 | ilford_pan_f_plus_50 | ilford_xp_2 | inception |
indoor_blue | industrial_33 | infrared_-_dust_pink | instantc | j | jarklin
|
jojo_rabbit | joker | jumanji_the_next_level |
jurassic_world_fallen_kingdom | justice_league | justpeachy | jwick_21 |
k_tone_vintage_kodachrome |
kahve_3 | kh_1 | kh_10 | kh_2 | kh_3 | kh_4 | kh_5 | kh_6 | kh_7 | kh_8 |
kh_9 | killstreak | kingsman_the_golden_circle | knives_out |
kodak_2383_constlclip | kodak_2383_constlmap | kodak_2383_cuspclip |
kodak_2393_constlclip | kodak_2393_constlmap | kodak_2393_cuspclip |
kodak_bw_400_cn | kodak_e-100_gx_ektachrome_100 | kodak_ektachrome_100_vs
| kodak_ektachrome_100_vs_generic | kodak_ektar_100 |
kodak_elite_100_xpro
| kodak_elite_chrome_200 | kodak_elite_chrome_400 | kodak_elite_color_200
| kodak_elite_color_400 | kodak_elite_extracolor_100 | kodak_hie_hs_infra
|
kodak_kodachrome_200 | kodak_kodachrome_25 | kodak_kodachrome_64 |
kodak_kodachrome_64_generic | kodak_portra_160 | kodak_portra_160_+ |
kodak_portra_160_++ | kodak_portra_160_- | kodak_portra_160_nc |
kodak_portra_160_nc_+ | kodak_portra_160_nc_++ | kodak_portra_160_nc_- |
kodak_portra_160_vc | kodak_portra_160_vc_+ | kodak_portra_160_vc_++ |
kodak_portra_160_vc_- | kodak_portra_400 | kodak_portra_400_+ |
kodak_portra_400_++ | kodak_portra_400_- | kodak_portra_400_nc |
kodak_portra_400_nc_+ | kodak_portra_400_nc_++ | kodak_portra_400_nc_- |
kodak_portra_400_uc | kodak_portra_400_uc_+ | kodak_portra_400_uc_++ |
kodak_portra_400_uc_- | kodak_portra_400_vc | kodak_portra_400_vc_+ |
kodak_portra_400_vc_++ | kodak_portra_400_vc_- | kodak_portra_800 |
kodak_portra_800_+ | kodak_portra_800_++ | kodak_portra_800_- |
kodak_portra_800_hc | kodak_t-max_100 | kodak_t-max_3200 | kodak_t-max_400
| kodak_tmax_3200 | kodak_tmax_3200_+ | kodak_tmax_3200_++ |
kodak_tmax_3200_- | kodak_tmax_3200_alt | kodak_tri-x_400 |
kodak_tri-x_400_+ | kodak_tri-x_400_++ | kodak_tri-x_400_- |
kodak_tri-x_400_alt |
korben_214 | la_la_land | landscape | landscape_01 | landscape_02 |
landscape_03 | landscape_04 | landscape_05 | landscape_1 | landscape_10
|
landscape_2 | landscape_3 | landscape_4 | landscape_5 | landscape_6 |
landscape_7 | landscape_8 | landscape_9 | lateafternoonwanderlust |
latesunset
| lavark | lc_1 | lc_10 | lc_2 | lc_3 | lc_4 | lc_5 | lc_6 | lc_7 | lc_8 |
lc_9 | lenox_340 | levex | life_giving_tree | light | light_blown |
litore
| little_women | logan | lomo | lomography_redscale_100 |
lomography_x-pro_slide_200 | london_nights | longbeachmorning | loro | lotta
| louetta |
low_altitude | low_contrast_blue | low_key_01 | lucky_64 | lushgreen |
lushgreensummer | mad_max_fury_road | maesky | magenta_day | magenta_day_01
|
magenta_dream | magenta_yellow | magentacoffee | magichour |
marriage_story | matrix | mckinnon_75 | memories | mercato | metropolis |
milo_5 |
minimalistcaffeination | modern_film | modern_films_01 | modern_films_02 |
modern_films_03 | modern_films_04 | modern_films_05 | modern_films_06 |
modern_films_07 | molti | mono_2 | mono_tinted | monochrome | monochrome_1
| monochrome_2 | moody_1 | moody_10 | moody_2 | moody_3 | moody_4 |
moody_5 | moody_6 | moody_7 | moody_8 | moody_9 | moonlight | moonlight_01
| moonlight_2 | moonrise | morning_6 | morroco_16 | mostly_blue |
mother!
| motus | moviz_1 | moviz_10 | moviz_11 | moviz_12 | moviz_13 | moviz_14 |
moviz_15 | moviz_16 | moviz_17 | moviz_18 | moviz_19 | moviz_2 |
moviz_20
| moviz_21 | moviz_22 | moviz_23 | moviz_24 | moviz_25 | moviz_26 |
moviz_27 | moviz_28 | moviz_29 | moviz_3 | moviz_30 | moviz_31 | moviz_32
|
moviz_33 | moviz_34 | moviz_35 | moviz_36 | moviz_37 | moviz_38 | moviz_39
| moviz_4 | moviz_40 | moviz_41 | moviz_42 | moviz_43 | moviz_44 |
moviz_45 | moviz_46 | moviz_47 | moviz_48 | moviz_5 | moviz_6 | moviz_7 |
moviz_8 | moviz_9 | mucca | mute_shift | muted_01 | muted_fade |
mysticpurplesunset | nah | natural_01 | natural_02 | natural_03 |
natural_vivid | naturalboost | negative | nemesis | neon_770 | neutral |
neutral_pump | neutral_teal_orange | neutral_warm_fade | newspaper |
night_01 | night_02 | night_03 | night_04 | night_05 | night_blade_4 |
night_king_141 | night_spy | night_view | nightfromday | nightlife |
nigrum | no_time_to_die | nostalgiahoney | nostalgic | nw-1 | nw-10 | nw-2
|
nw-3 | nw-4 | nw-5 | nw-6 | nw-7 | nw-8 | nw-9 | old_west |
once_upon_a_time | once_upon_a_time_in_hollywood | onda | only_red |
only_red_and_blue |
operation_yellow | orange_dark_4 | orange_dark_7 | orange_dark_look |
orange_tone | orange_underexposed | orangeandblue | oranges | padre |
paladin |
paladin_1875 | parasite | partia | pasadena_21 | passing_by | perso |
picola | pink_fade | pirates_of_the_caribbean | pitaya_15 | pmcinematic_01
|
pmcinematic_02 | pmcinematic_03 | pmcinematic_04 | pmcinematic_05 |
pmcinematic_06 | pmcinematic_07 | pmnight_01 | pmnight_02 | pmnight_03 |
pmnight_04 | pmnight_05 | polaroid_664 | polaroid_665 | polaroid_665_+ |
polaroid_665_++ | polaroid_665_- | polaroid_665_-- | polaroid_665_negative
|
polaroid_665_negative_+ | polaroid_665_negative_- |
polaroid_665_negative_hc | polaroid_667 | polaroid_669 | polaroid_669_+ |
polaroid_669_++ |
polaroid_669_+++ | polaroid_669_- | polaroid_669_-- | polaroid_669_cold |
polaroid_669_cold_+ | polaroid_669_cold_- | polaroid_669_cold_-- |
polaroid_672 | polaroid_690 | polaroid_690_+ | polaroid_690_++ |
polaroid_690_- | polaroid_690_-- | polaroid_690_cold | polaroid_690_cold_+
|
polaroid_690_cold_++ | polaroid_690_cold_- | polaroid_690_cold_-- |
polaroid_690_warm | polaroid_690_warm_+ | polaroid_690_warm_++ |
polaroid_690_warm_- | polaroid_690_warm_-- | polaroid_polachrome |
polaroid_px-100uv+_cold | polaroid_px-100uv+_cold_+ |
polaroid_px-100uv+_cold_++ |
polaroid_px-100uv+_cold_+++ | polaroid_px-100uv+_cold_- |
polaroid_px-100uv+_cold_-- | polaroid_px-100uv+_warm |
polaroid_px-100uv+_warm_+ |
polaroid_px-100uv+_warm_++ | polaroid_px-100uv+_warm_+++ |
polaroid_px-100uv+_warm_- | polaroid_px-100uv+_warm_-- | polaroid_px-680
|
polaroid_px-680_+ | polaroid_px-680_++ | polaroid_px-680_- |
polaroid_px-680_-- | polaroid_px-680_cold | polaroid_px-680_cold_+ |
polaroid_px-680_cold_++ | polaroid_px-680_cold_++_alt |
polaroid_px-680_cold_- | polaroid_px-680_cold_-- | polaroid_px-680_warm
|
polaroid_px-680_warm_+ | polaroid_px-680_warm_++ | polaroid_px-680_warm_-
| polaroid_px-680_warm_-- | polaroid_px-70 | polaroid_px-70_+ |
polaroid_px-70_++ | polaroid_px-70_+++ | polaroid_px-70_- |
polaroid_px-70_-- | polaroid_px-70_cold | polaroid_px-70_cold_+ |
polaroid_px-70_cold_++
| polaroid_px-70_cold_- | polaroid_px-70_cold_-- | polaroid_px-70_warm |
polaroid_px-70_warm_+ | polaroid_px-70_warm_++ | polaroid_px-70_warm_- |
polaroid_px-70_warm_-- | polaroid_time_zero_expired |
polaroid_time_zero_expired_+ | polaroid_time_zero_expired_++ |
polaroid_time_zero_expired_- |
polaroid_time_zero_expired_-- | polaroid_time_zero_expired_--- |
polaroid_time_zero_expired_cold | polaroid_time_zero_expired_cold_- |
polaroid_time_zero_expired_cold_-- | polaroid_time_zero_expired_cold_--- |
portrait | portrait_1 | portrait_10 | portrait_2 | portrait_3 |
portrait_4
| portrait_5 | portrait_6 | portrait_7 | portrait_8 | portrait_9 |
progressen | protect_highlights_01 | prussian_blue | pseudogrey | purple
|
purple_2 | quraqqq_12 | radar | randas | red_afternoon_01 | red_day_01 |
red_dream_01 | redblueyellow | reds | reds_oranges_yellows | reeve_38 |
remy_24 | rest_33 | retro | retro_brown_01 | retro_magenta_01 |
retro_summer_3 | retro_yellow_01 | rocketman | rollei_ir_400 |
rollei_ortho_25 |
rollei_retro_100_tonal | rollei_retro_80s | rotate_muted | rotate_vibrant
| rotated | rotated_crush | satid | saturated_blue | saving_private_damon
|
scala | science_fiction | scrittle | sea | seges | selor | sensum |
separation | serenity | seringe_4 | serpent | seventies_magazine | sevsuz
|
shade_kings_ink | shadow_king_39 | shine | sicario | sino | skin_tones |
slog_to_rec_709_basic | slog_to_rec_709_contrasty |
slog_to_rec_709_crush_shadows | slog_to_rec_709_green_correction |
smart_contrast | smokey | smooth_clear | smooth_cromeish | smooth_fade |
smooth_green_orange | smooth_sailing | smooth_teal_orange | soft_fade |
softblackandwhite | softwarming | solarized_color | solarized_color_2 |
soldi
| spider-man_far_from_home | spotlight | springmorning | sprocket_231 |
spy_29 | standard | star_wars_the_rise_of_skywalker | strano | street |
stringa | studio_skin_tone_shaper | subtle_blue | subtle_green |
subtle_yellow | sully | summer | summer_alt | sunlight_love_11 |
sunlightlove |
sunny | sunny_alt | sunny_rich | sunny_warm | sunset | sunset_aqua_orange
| sunset_intense_violet_blue | sunset_violet_mood | super_warm |
super_warm_rich | sutro_fx | sweet_bubblegum | sweet_gelatto |
taşdemirrr_1 | taiga | take_off | tarraco | teal-orange_for_flog |
teal_fade |
teal_moonlight | tealmagentagold | tealorange | tealorange_1 |
tealorange_2 | tealorange_3 | technicalfx_backlight_filter | teigen_28 |
tenet |
tensiongreen_1 | tensiongreen_2 | tensiongreen_3 | tensiongreen_4 |
terra_4 | the_dark_knight | the_darkest_hour | the_gentelmen |
the_grand_budapest_hotel | the_hurt_locker | the_irishman | the_lighthouse
| the_lobster | the_martian | the_matrices | the_revenant |
the_shape_of_water | the_social_network | the_two_popes | the_way_back |
thor_ragnarok | thriller_2 | tirare | toastedgarden | top_gun_maverick |
trent_18 | true_colors_8 | turkiest_42 | tutto | tweed_71 | ultra_water |
uncut_gems | undeniable | undeniable_2 | underwater | unknown | upglow |
urban_01 | urban_02 | urban_03 | urban_04 | urban_05 | urban_cowboy |
uzbek_bukhara | uzbek_marriage | uzbek_samarcande | valize | valsky |
velvetia
| venom | very_warm_greenish | vfb_21 | vibrant | vibrant_alien |
vibrant_contrast | vibrant_cromeish | victory | vintage | vintage_01 |
vintage_02 |
vintage_03 | vintage_04 | vintage_05 | vintage_163 | vintage_alt |
vintage_brighter | vintage_chrome | vintage_mob | vintage_warmth_1 |
violet_taste
| vireo_37 | vita | vivid | vubes | war_for_the_planet_of_the_apes | warm
| warm_dark_contrasty | warm_fade | warm_fade_1 | warm_highlight |
warm_neutral | warm_sunset_red | warm_teal | warm_vintage | warm_yellow |
wavefire | waves | well_see | western | western_6 | westernlut_2 |
westernlut_2_13 | whiter_whites | wingspan | winterlighthouse | wipe |
wolf_of_wall_street | wonder_woman | wooden_gold_20 | x-men_dark_phoenix
|
yangabuz_8 | yellow_55b | yellow_film_01 | yellowstone | you_can_do_it |
zed_32 | zeke_39 | zilverfx_bw_solarization | zilverfx_infrared |
zilverfx_vintage_bw | zombieland_double_tap }
باشد.
مقادیر
پیشفرض:
'resolution=33' و 'cut_and_round=1'.
مثال:
[#1] clut summer clut alien_green,17 clut orange_dark4,48
clut2hald:
تبدیل 3D CLUTهای
انتخابشده
به 2D HaldCLUTها.
مثال:
[#1] clut summer +clut2hald
cmy2rgb:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از CMY به RGB.
cmyk2rgb:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از CMYK به RGB.
colorblind:
type={ 0:Protanopia | 1:Protanomaly | 2:Deuteranopia | 3:Deuteranomaly |
4:Tritanopia | 5:Tritanomaly | 6:Achromatopsia | 7:Achromatomaly }
شبیهسازی
دید
کوررنگی.
روش
شبیهسازی
بر پایه
پژوهش Vienot, Brettel & Mollon
(1999)، "Digital video colormaps for checking the legibility of
displays by dichromats".
ماتریسهای
دورنگبینی
(dichromacy) مقاله با sRGB
سازگار
شدهاند (RGB->XYZ).
سهرنگبینی
نابهنجار
از طریق
درونیابی
خطی با
ماتریس
همانی و
ضریب 0.6
شبیهسازی
شده است.
مثال:
[#1] image.jpg +colorblind 0
colormap:
nb_levels>=0,_method={ 0:Median-cut | 1:K-means },_sort_vectors
تخمین
مناسبترین
نقشه رنگی
با 'nb_levels' مدخل،
جهت
نمایهسازی
تصاویر
انتخابشده.
برای
استخراج
تمام
رنگهای
موجود در
تصویر،
مقدار 'nb_levels==0'
را تعیین
کنید.
'sort_vectors'
میتواند { 0:Do
not sort | 1:By increasing norm | 2:By decreasing occurrence }
باشد.
مقدار
پیشفرض:
'method=1' و 'sort_vectors=1'.
مثال:
[#1] image.jpg +colormap[0] 4 +colormap[0] 8 +colormap[0] 16
آموزش:
https://gmic.eu/oldtutorial/_colormap
compose_channels:
_operator
ترکیب تمام
کانالهای
هر تصویر
انتخابشده
با استفاده
از عملگر
محاسباتی
مشخصشده
(+,-,or,min,...).
مقدار
پیشفرض:
'operator=+'.
مثال:
[#1] image.jpg +compose_channels and
آموزش:
https://gmic.eu/tutorial/compose_channelscontrast:
strength
تغییر
کنتراست
تصاویر
انتخابشده،
با شدت
مشخصشده.
* اگر 'strength' مثبت
باشد،
کنتراست
تصویر
تقویت
میشود.
* اگر 'strength' منفی
باشد،
کنتراست
تصویر کاهش
مییابد.
بازه
مقادیر
معمول برای
پارامتر 'strength'
برابر با [-100,100]
است.
مثال:
[#1] image.jpg +contrast 20
count_colors:
_count_until={ 0:None | >0:Max number of counted colors }
شمارش
تعداد
رنگهای
متمایز در
تصاویر
انتخابشده
تا زمانی که
به حداکثر
تعداد
مشخصشده
برای
رنگهای
شمارششده
برسد.
جهت
غیرفعال
کردن
محدودیت در
شمارش
رنگها،
'count_until' را روی '0'
تنظیم کنید.
این دستور
تعداد
رنگهای
متمایز را
برای هر
تصویر
(جداشده با
کاما)
برمیگرداند.
deltaE:
[image],_metric={ 0:DeltaE_1976 | 1:DeltaE_2000
},"_to_Lab_command"
محاسبه
اختلاف رنگ
CIE DeltaE بین
تصاویر
انتخابشده
و [image]
مشخصشده.
آرگومان
'to_Lab_command' دستوری
است که
میتواند
رنگهای [image]
را به یک
نمایش Lab
تبدیل کند.
مقادیر
پیشفرض:
'metric=1' و 'to_Lab_command="srgb2lab"'.
مثال:
[#1] image.jpg +blur 2 +deltaE[0] [1],1,srgb2lab
direction2rgb:
محاسبه
نمایش RGB
میدانهای
جهت دوبعدی
انتخابشده.
مثال:
[#1] image.jpg luminance gradient append c blur 2 orientation
+direction2rgb
ditheredbw:
ایجاد نسخه
سیاهوسفید
دیترشده (dithered)
از تصاویر
انتخابشده.
مثال:
[#1] image.jpg +equalize ditheredbw[-1]
fc:
میانبری
برای دستور
'fill_color'.
fill_color:
col1,...,colN
پر کردن
تصاویر
انتخابشده
با رنگ
مشخصشده.
(معادل
دستور
میانبر 'fc').
مثال:
[#1] image.jpg +fill_color 255,0,255
آموزش:
https://gmic.eu/oldtutorial/_fill_color
gradient2rgb:
_is_orientation={ 0:No | 1:Yes }
محاسبه
نمایش RGB
گرادیان
دوبعدی
تصاویر
انتخابشده.
مقدار
پیشفرض:
'is_orientation=0'.
مثال:
[#1] image.jpg +gradient2rgb 0 equalize[-1]
hald2clut:
تبدیل HaldCLUTهای
دوبعدی
انتخابشده
به CLUTهای
سهبعدی.
hcy2rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HCY به RGB.
hsi2rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSI به RGB.
hsi82rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSI8 به RGB.
hsl2rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSL به RGB.
hsl82rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSL8 به RGB.
hsv2rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSV به RGB.
مثال:
[#1] (0,360;0,360^0,0;1,1^1,1;1,1) resize 400,400,1,3,3 hsv2rgb
hsv82rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از HSV8 به RGB.
int2rgb:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از INT24 به RGB.
ipremula:
تبدیل
تصاویر
انتخابشده
با رنگهای
آلفای
پیشضربشده
(premultiplied alpha) به
رنگهای
عادی.
همچنین
ببینید: premula.
jzazbz2rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از RGB به Jzazbz.
مقدار
پیشفرض:
'illuminant=2'.
jzazbz2xyz:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از RGB به XYZ.
lab2lch:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab به Lch.
lab2rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab به RGB.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] (50,50;50,50^-3,3;-3,3^-3,-3;3,3) resize 400,400,1,3,3 lab2rgb
lab2srgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab به sRGB.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] (50,50;50,50^-3,3;-3,3^-3,-3;3,3) resize 400,400,1,3,3 lab2rgb
lab82srgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab8 به sRGB.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] (50,50;50,50^-3,3;-3,3^-3,-3;3,3) resize 400,400,1,3,3 lab2rgb
lab2xyz:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab به XYZ.
مقدار
پیشفرض:
'illuminant=2'.
lab82rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lab8 به RGB.
مقدار
پیشفرض:
'illuminant=2'.
lch2lab:
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lch به Lab.
lch2rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lch به RGB.
مقدار
پیشفرض:
'illuminant=2'.
lch82rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
نمایش رنگ
تصاویر
انتخابشده
از Lch8 به RGB.
مقدار
پیشفرض:
'illuminant=2'.
luminance:
محاسبه
درخشندگی (luminance)
تصاویر sRGB
انتخابشده.
مثال:
[#1] image.jpg +luminance
آموزش:
https://gmic.eu/tutorial/luminance
lightness:
محاسبه
روشنایی (lightness)
تصاویر sRGB
انتخابشده.
مثال:
[#1] image.jpg +lightness
lut_contrast:
_nb_colors>1,_min_rgb_value
تولید یک
جدول رنگی (colormap)
RGB که در آن
رنگهای
متوالی
کنتراست
بالایی
دارند.
این تابع
برای تولید
نتیجه،
بیشینهسازی
امتیاز
خاصی را
انجام
میدهد،
بنابراین
زمانی که 'nb_colors'
بالا باشد
ممکن است
کمی زمان
ببرد.
مقادیر
پیشفرض:
'nb_colors=256' و 'min_rgb_value=64'.
map_clut:
[clut] | "clut_name"
نگاشت جدول
تبدیل رنگ (color
LUT) RGB مشخصشده
بر روی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg uniform_distribution {2^6},3 mirror[-1] x +map_clut[0] [1]
transfer_histogram:
[style],_nb_levels>0,_color_channels
انتقال
هیستوگرامهای
به تفکیک
کانال
تصویر سبک (style)
مشخصشده
به تصاویر
انتخابشده.
آرگومان 'color
channels' مشابه
دستور 'apply_channels'
است.
مقدار
پیشفرض:
'nb_levels=256' و 'color_channels=all'.
مثال:
[#1] image.jpg 100,100,1,3,"u([256,200,100])"
+transfer_histogram[0] [1]
transfer_pca:
[style],_color_channels
انتقال
میانگین و
ماتریس
کوواریانس
تصویر سبک
برداری (vector-valued style)
مشخصشده
به تصاویر
انتخابشده.
آرگومان 'color
channels' مشابه
دستور 'apply_channels'
است.
مقدار
پیشفرض:
'color_channels=all'.
مثال:
[#1] sample lena,earth +transfer_pca[0] [1]transfer_rgb:
[style],_rgb_smoothness>0,_beta>0,_regul_iterations>=0,_brightness_constraint>=0,_transfer_avg_std={
0:No | 1:Avg-only | 2 |
Avg-Std },_colorspace={ 0:srgb | 1:lrgb | 2:ycbcr | 3:lab
},_resolution3d>0,[color_constraints],_lambda>=0
انتقال
رنگهای RGB
از تصویر
سبک
مشخصشده
به تصاویر
انتخابشده،
با استفاده
از انطباق
وردشی
سهبعدی (3D variational
registration).
هنگامی که
'[color_constraints]' ارائه
شود، باید
یک تصویر 6D
باشد که در
آن هر نقطه
به این
مفهوم است: [
Rimg,Gimg,Bimg, Rstyle,Gstyle,Bstyle ]
مقادیر
پیشفرض:
'rgb_smoothness=0.01'، 'beta=1'،
'regul_iterations=3'،
'brightness_constraint=0.35'،
'transfer_avg_std=0'، 'colorspace=0'،
'resolution3d=32'، '[color_constraints]=(undefined)'
و 'lambda=1000'.
مثال:
[#1] sample colorful,eagle +transfer_rgb[0] [1]
[#2] sample pencils,wall +transfer_rgb[0] [1]
mix_rgb:
a11,a12,a13,a21,a22,a23,a31,a32,a33
اعمال
ماتریس 3x3
مشخصشده
بر رنگهای
RGB تصاویر
انتخابشده.
مقادیر
پیشفرض:
'a11=1'، 'a12=a13=a21=0'، 'a22=1'،
'a23=a31=a32=0' و 'a33=1'.
مثال:
[#1] image.jpg +mix_rgb 0,1,0,1,0,0,0,0,1
آموزش:
https://gmic.eu/tutorial/mix_rgb
oklab2rgb:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از OKlab به RGB.
(تعریف فضای
رنگی را در
این نشانی
ببینید:
https://bottosson.github.io/posts/oklab ).
همچنین
ببینید: rgb2oklab.
palette:
palette_name | palette_number
وارد کردن
جعبهرنگ
مشخصشده
در انتهای
فهرست
تصاویر.
'palette_name'
میتواند {
default | hsv | lines | hot | cool | jet | flag | cube | rainbow | parula |
spring | summer | autumn | winter |
bone | copper | pink | vga | algae | amp | balance | curl | deep | delta |
dense | diff | gray | haline | ice | matter | oxy | phase | rain | solar
|
speed | tarn | tempo | thermal | topo | turbid | aurora | hocuspocus |
srb2 | uzebox | amiga7800 | amiga7800mess | fornaxvoid1 }
باشد.
مثال:
[#1] palette hsv
premula:
تبدیل
تصاویر
انتخابشده
با رنگهای
معمولی به
رنگهای با
آلفای
ازپیشضربشده
(premultiplied alpha).
پس از
تبدیل،
کانال
آلفای
تصاویر
حاصل
مقداری در
بازهٔ [0,1]
خواهد داشت.
همچنین
ببینید: ipremula.
pseudogray:
_max_increment>=0,_JND_threshold>=0,_bits_depth>0
تولید
نگاشت رنگی
خاکسترینما
(pseudogray colormap) با
افزایش و
آستانهٔ
ادراکی
مشخصشده.
اگر 'JND_threshold'
برابر 0
باشد، هیچ
قید ادراکی
اعمال
نمیشود.
مقادیر
پیشفرض:
'max_increment=5'، 'JND_threshold=2.3' و
'bits_depth=8'.
مثال:
[#1] pseudogray 5
random_clut:
تولید یک CLUT
سهبعدی
رنگی
تصادفی در
ابعاد 33x33x33.
مثال:
[#1] image.jpg random_clut +map_clut.. .
random_clut:
_seed = { >=0 | -1 }
تولید یک CLUT
سهبعدی
رنگی
تصادفی در
ابعاد 33x33x33.
اگر 'seed'
مشخصشده
مثبت باشد،
به عنوان
بذر برای
مولد اعداد
تصادفی
استفاده
میشود @cli : (به
طوری که
استفاده از
همان بذر،
همان CLUT را
بازمیگرداند).
مثال:
[#1] image.jpg random_clut +map_clut.. .
replace_color:
tolerance[%]>=0,smoothness[%]>=0,src1,src2,...,dest1,dest2,...
جایگزینی
پیکسلها
از/به
رنگهای
مشخصشده
در تصاویر
انتخابشده.
مثال:
[#1] image.jpg +replace_color 40,3,204,153,110,255,0,0
retinex:
_value_offset>0,_colorspace={ hsi | hsv | lab | lrgb | rgb | ycbcr
},0<=_min_cut<=100,0<=_max_cut<=100,_sigma_low>0,_sigma_mid>0,_sigma_high>0
اعمال
الگوریتم
رتینکس
چندمقیاسی
بر تصاویر
انتخابشده
برای بهبود
سازگاری
رنگ.
(همانگونه
که در صفحهٔ
http://www.ipol.im/pub/art/2014/107
توصیف شده
است).
مقادیر
پیشفرض:
'offset=1'، 'colorspace=hsv'،
'min_cut=1'، 'max_cut=1'،
'sigma_low=15'، 'sigma_mid=80' و
'sigma_high=250'.
rgb:
_min_RGB_value,_max_RGB_value |
(no arg)
بازگرداندن
یک رنگ RGB
تصادفی با
مقادیر عدد
صحیح (int-valued).
rgba:
_min_RGB_value,_max_RGB_value,_min_A_value,_max_A_value |
(no_arg)
بازگرداندن
یک رنگ RGBA
تصادفی با
مقادیر عدد
صحیح (int-valued).
rgb2bayer:
_start_pattern=0,_color_grid=0
تبدیل
تصاویر
رنگی
انتخابشده
به تصاویر
نمونهبرداریشدهٔ
RGB-Bayer.
مقادیر
پیشفرض:
'start_pattern=0' و 'color_grid=0'.
مثال:
[#1] image.jpg +rgb2bayer 0
rgb2cmy:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به CMY.
مثال:
[#1] image.jpg rgb2cmy split c
rgb2cmyk:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به CMYK.
مثال:
[#1] image.jpg rgb2cmyk split c
[#2] image.jpg rgb2cmyk split c fill[3] 0 append c cmyk2rgb
rgb2hcy:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HCY.
مثال:
[#1] image.jpg rgb2hcy split c
rgb2hsi:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSI.
مثال:
[#1] image.jpg rgb2hsi split c
rgb2hsi8:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSI8.
مثال:
[#1] image.jpg rgb2hsi8 split c
rgb2hsl:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSL.
مثال:
[#1] image.jpg rgb2hsl split c
[#2] image.jpg rgb2hsl +split c add[-3] 100 mod[-3] 360 append[-3--1] c
hsl2rgb
rgb2hsl8:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSL8.
مثال:
[#1] image.jpg rgb2hsl8 split c
rgb2hsv:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSV.
مثال:
[#1] image.jpg rgb2hsv split c
[#2] image.jpg rgb2hsv +split c add[-2] 0.3 cut[-2] 0,1 append[-3--1] c
hsv2rgb
rgb2hsv8:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به HSV8.
مثال:
[#1] image.jpg rgb2hsv8 split c
rgb2int:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به
مقادیر
نردهای INT24.
مثال:
[#1] image.jpg rgb2int
rgb2jzazbz:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Jzazbz.
مقدار
پیشفرض:
'illuminant=2'.
rgb2lab:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Lab.
مقدار
پیشفرض:
'illuminant=2'.
rgb2lab8:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Lab8.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg rgb2lab8 split c
rgb2lch:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Lch.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg rgb2lch split c
rgb2lch8:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(no arg)
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Lch8.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg rgb2lch8 split c
rgb2luv:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به LUV.
مثال:
[#1] image.jpg rgb2luv split c
rgb2oklab:
تبدیل
بازنمایی
رنگ تصاویر
انتخابشده
از RGB به Oklab.
(تعریف فضای
رنگی را در
این نشانی
ببینید:
https://bottosson.github.io/posts/oklab ).
همچنین
ببینید:
oklab2rgb.rgb2ryb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به RYB.
مثال:
[#1] image.jpg rgb2ryb split c
rgb2srgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB خطی به sRGB.
rgb2xyz:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به XYZ.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg rgb2xyz split c
rgb2xyz8:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به XYZ8.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg rgb2xyz8 split c
rgb2yiq:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به YIQ.
مثال:
[#1] image.jpg rgb2yiq split c
rgb2yiq8:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به YIQ8.
مثال:
[#1] image.jpg rgb2yiq8 split c
rgb2ycbcr:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به YCbCr.
مثال:
[#1] image.jpg rgb2ycbcr split c
rgb2yuv:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به YUV.
مثال:
[#1] image.jpg rgb2yuv split c
rgb2yuv8:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RGB به YUV8.
مثال:
[#1] image.jpg rgb2yuv8 split c
remove_opacity:
حذف کانال
شفافیت (opacity)
تصویرهای
انتخابشده.
ryb2rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از RYB به RGB.
select_color:
tolerance[%]>=0,col1,...,colN
انتخاب
پیکسلهایی
با رنگ
مشخصشده
در
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg +select_color 40,204,153,110
آموزش:
https://gmic.eu/oldtutorial/_select_color
sepia:
اعمال جلوه
تنالیته
قهوهای (sepia)
بر روی
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg sepia
solarize:
سولاریزه
کردن (solarize)
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg solarize
split_colors:
_max_nb_outputs>=0
تفکیک
تصویرهای
انتخابشده
به چندین
خروجی
تکرنگ.
یک تصویر
انتخابشده
میتواند
حداکثر به
'max_nb_outputs' تصویر
تفکیک شود.
تصویرهای
خروجی بر
اساس کاهش
تکرار رنگ
مرتب
میشوند و
دارای یک
کانال
آلفای
اضافی
هستند.
اگر 'max_nb_outputs==0'
باشد، به
تعداد
رنگهای
مختلف در
تصویرهای
ورودی
خروجی
ایجاد
خواهد شد.
مقادیر
پیشفرض:
'max_nb_outputs=0'.
مثال:
[#1] image.jpg quantize 5 +split_colors , display_rgba
split_opacity:
تفکیک
بخشهای
رنگ و
شفافیت
تصویرهای
انتخابشده.
این دستور
بسته به
اینکه
تصویر
دارای
کانال
شفافیت
باشد یا
خیر، ۱ یا ۲
تصویر برای
هر تصویر
انتخابشده
بازمیگرداند.
split_vector:
keep_splitting_values={ +:Increasing | -:Decreasing },value1,_value2,...
تفکیک
تصویرهای
انتخابشده
به چند بخش،
بهگونهای
که بردار
مشخصشده
'[value1,_value2,...]'
جداکننده
است.
srgb2lab:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از sRGB به Lab.
مقدار
پیشفرض:
'illuminant=2'.
مثال:
[#1] image.jpg srgb2lab split c
[#2] image.jpg srgb2lab +split c mul[-2,-1] 2.5 append[-3--1] c lab2srgb
srgb2lab8:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از sRGB به Lab8.
مقدار
پیشفرض:
'illuminant=2'.
srgb2rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از sRGB به RGB خطی.
to_a:
اجبار
تصویرهای
انتخابشده
به داشتن
کانال
آلفا.
to_color:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
حالت رنگی (RGB
یا RGBA).
to_colormode:
mode={ 0:Adaptive | 1:G | 2:GA | 3:RGB | 4:RGBA }
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در یک
حالت رنگی
مشخص.
مقدار
پیشفرض:
'mode=0'.
to_gray:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
حالت
خاکستری (GRAY).
مثال:
[#1] image.jpg +to_gray
to_graya:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
حالت GRAYA.
to_pseudogray:
_max_step>=0,_is_perceptual_constraint={ 0:No | 1:Yes
},_bits_depth>0
تبدیل
تصویرهای
اسکالر
انتخابشده
(با مقادیر
در بازه [0-255]) به
تصویرهای
رنگی
شبهخاکستری
(pseudo-gray).
مقادیر
پیشفرض:
'max_step=5'، 'is_perceptual_constraint=1' و
'bits_depth=8'.
روش اولیه
شبهخاکستری
توسط Rich Franzen در
http://r0k.us/graphics/pseudoGrey.html
معرفی شده
است.
توسعه این
تکنیک به
گامهای
اختیاری
جهت
دستیابی به
تنالیتههای
بیشتر،
توسط David Tschumperlé
انجام
گرفته است.
to_rgb:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
حالت RGB.
to_rgba:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
حالت RGBA.
to_automode:
اجبار
تصویرهای
انتخابشده
به قرار
گرفتن در
مناسبترین
حالت رنگی.
این دستور
کانالهای
آلفای
بیاستفاده
(با مقادیر
تماماً
برابر ۲۵۵)
را بررسی
کرده و
همچنین
تصویرهای
سیاه و سفید
که بهصورت
تصویر رنگی
کدگذاری
شدهاند را
تشخیص
میدهد.
xyz2jzazbz:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از XYZ به RGB.
xyz2lab:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از XYZ به Lab.
مقدار
پیشفرض:
'illuminant=2'.
xyz2rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از XYZ به RGB.
مقدار
پیشفرض:
'illuminant=2'.
xyz82rgb:
illuminant={ 0:D50 | 1:D65 | 2:E } |
(بدون
آرگومان)
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از XYZ8 به RGB.
مقدار
پیشفرض:
'illuminant=2'.
ycbcr2rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از YCbCr به RGB.
yiq2rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از YIQ به RGB.
yiq82rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از YIQ8 به RGB.
yuv2rgb:
تبدیل
نمایش رنگ
تصویرهای
انتخابشده
از YUV به RGB.
yuv82rgb:
تبدیل
پایههای
رنگ
تصویرهای
انتخابشده
از YUV8 به RGB.
11.7. دستکاری
هندسه (Geometry Manipulation)
-----------------------------------------
a (+):
میانبر
برای دستور
'append'.append (+):
[image],axis,_centering |
axis,_centering
تصویر
مشخصشده
را به
تصاویر
انتخابشده،
یا تمام
تصاویر
انتخابشده
را به
یکدیگر، در
امتداد
محور
مشخصشده
پیوست
میکند.
(معادل
دستور
میانبر 'a').
'axis'
میتواند { x | y
| z | c } باشد.
مقادیر
معمول 'centering'
عبارتند از
{ 0:left-justified | 0.5:centered | 1:right-justified }.
مقدار
پیشفرض:
'centering=0'.
مثال:
[#1] image.jpg split y,10 reverse append y
[#2] image.jpg repeat 5 { +rows[0] 0,{10+18*$>}% } remove[0] append x,0.5
[#3] image.jpg append[0] [0],y
append_tiles:
_M>=0,_N>=0,0<=_centering_x<=1,0<=_centering_y<=1
کاشیهای
انتخابی MxN
را به عنوان
تصاویر
جدید پیوست
میکند.
اگر 'N' برابر
0 تنظیم شود،
تعداد
سطرها
بهطور
خودکار
تخمین زده
میشود.
اگر 'M' برابر
0 تنظیم شود،
تعداد
ستونها
بهطور
خودکار
تخمین زده
میشود.
اگر هم 'M' و
هم 'N' برابر
'0' تنظیم
شوند، حالت
خودکار
استفاده
میشود.
اگر 'M' یا 'N'
برابر 0
تنظیم شود،
تنها یک
تصویر
تولید
میشود.
'centering_x' و 'centering_y'
مرکزچین
شدن
کاشیها را
در صورت
داشتن
اندازههای
متفاوت
تعیین
میکنند.
مقادیر
پیشفرض: 'M=0',
'N=0', 'centering_x=centering_y=0.5'.
مثال:
[#1] image.jpg split xy,4 append_tiles ,
apply_scales:
"command",number_of_scales>0,_min_scale[%]>=0,_max_scale[%]>=0,_scale_gamma>0,_interpolation
دستور
مشخصشده
را روی
مقیاسهای
مختلف
تصاویر
انتخابشده
اعمال
میکند.
'interpolation'
میتواند { 0:None
| 1:Nearest | 2:Average | 3:Linear | 4:Grid | 5:Bicubic | 6:Lanczos }
باشد.
مقدار
پیشفرض:
'min_scale=25%'، 'max_scale=100%' و
'interpolation=3'.
مثال:
[#1] image.jpg apply_scales "blur 5 sharpen 1000",4
arrange:
_"layout",-1<=_align_or_scale_factor<=1,_output_layers={
0:Single | 1:Multiple (volumetric) | 2:Multiple (named)
},_"processing_command"
تصاویر
انتخابشده
را بر اساس
یک چیدمان
مشخصشده
که به صورت
یک رشته
توصیف
میشود،
مرتب
میکند.
'layout' نحوه
ترکیب
تصاویر با
یکدیگر را
با استفاده
از نمادهای
زیر توصیف
میکند
(غیرحساس به
حروف بزرگ و
کوچک):
* یک عدد: به
یکی از
تصاویر
انتخابشده
بر اساس
نمایهاش
اشاره
میکند.
* '?' : نمایه
تصادفی یک
تصویر.
* 'X' : آنچه در
پی میآید
را بهصورت
افقی
آینهای
(وارون چپ به
راست)
میکند.
* 'Y' : آنچه در
پی میآید
را بهصورت
عمودی
آینهای
(وارون بالا
به پایین)
میکند.
* 'R' : آنچه در
پی میآید
را ۹۰ درجه
در جهت
عقربههای
ساعت
میچرخاند.
* 'L' : آنچه در
پی میآید
را ۹۰ درجه
در خلاف جهت
عقربههای
ساعت
میچرخاند.
* 'H' : آنچه در
پی میآید
را بهصورت
افقی کنار
هم (چپ / راست)
قرار
میدهد.
* 'V' : آنچه در
پی میآید
را بهصورت
عمودی روی
هم (بالا /
پایین)
میچیند.
* 'B' : همانند 'H'
یا 'V'، اما
بهطور
خودکار
حالتی را که
متعادلترین
(مربعیترین)
نتیجه را
بدهد
انتخاب
میکند.
* 'Q' : آنچه در
پی میآید
را به مضرب
تصادفی از
۹۰ درجه
میچرخاند.
* 'F' : آنچه در
پی میآید
را بهطور
تصادفی، در
امتداد
محور x یا
محور y
وارونه
میکند.
* 'M' : آنچه در
پی میآید
را بهطور
تصادفی،
بهصورت
افقی یا
عمودی
ادغام
میکند.
هر نویسه
دیگری
(مانند ';' یا
':') میتواند
به عنوان
جداکننده
بین دو عدد
برای
جلوگیری از
ابهام
استفاده
شود (مانند
تمایز
تصاویر '0' و
'1' از یک
تصویر واحد
'01').
تصاویر دو
به دو با
یکدیگر
ترکیب
میشوند.
برای نمونه:
* '"H0:1"' تصاویر
0 و 1 را کنار
هم قرار
میدهد.
* '"V0:1"' تصاویر
0 و 1 را روی هم
میچیند.
* '"VH0:1H2:3"' ابتدا
دو جفت افقی
(0,1) و (2,3) را
تشکیل
میدهد،
سپس آن دو
جفت را
بهصورت
عمودی روی
هم میچیند
که منجر به
یک شبکه 2x2
میشود.
* '"H0R1"' تصویر 0
را کنار
تصویر 1 که ۹۰
درجه در جهت
عقربههای
ساعت
چرخیده است
قرار
میدهد.
چهار
میانبر از
پیش
تعریفشده
نیز برای 'layout'
در دسترس
است تا تمام
تصاویر
انتخابشده
را سریعاً و
یکباره
بدون نیاز
به نوشتن یک
رشته
چیدمان
کامل مرتب
کند:
* '"H"' : تمام
تصاویر
انتخابشده
را به ترتیب
بهصورت
افقی متصل
میکند.
* '"V"' : تمام
تصاویر
انتخابشده
را به ترتیب
بهصورت
عمودی متصل
میکند.
* '"AH"' : بهطور
خودکار
تمام
تصاویر را
در یک شبکه
میچیند،
با تعداد
ستونهایی
بیشتر یا
مساوی با
تعداد
سطرها.
* '"AV"' : همان
کار 'AH' را
انجام
میدهد،
اما با
تعداد
سطرهایی
بیشتر یا
مساوی با
تعداد
ستونها.
'align_or_scale_factor' نحوه
ترکیب
تصاویر با
اندازههای
مختلف را
کنترل
میکند:
* در صورت
مثبت بودن،
اندازه
تصاویر به
یک اندازه
مشترک
تغییر
مییابد: '0'
به
کوچکترین
اندازه
موجود
فشرده
میشود، '1'
به
بزرگترین
اندازه
گسترش
مییابد، و
مقادیر
میانی بین
این دو
درونیابی
میشوند.
* در صورت
منفی بودن،
تصاویر در
عوض اندازه
اصلی خود را
حفظ کرده و
صرفاً کنار
هم قرار
میگیرند.
در این حالت
مقدار مطلق
آن، تراز
بین تصاویر
با
اندازههای
مختلف را
تعیین
میکند ('0':
بالا-چپ، '0.5':
وسطچین، '1':
پایین-راست).
'output_layers' مشخص
میکند که
آیا نتیجه
یک تصویر
مسطح منفرد
باشد ('Single')، یا
یک تصویر
حجمی منفرد
که برشهای
آن تصاویر
منفرد،
تغییر
اندازه
یافته و
موقعیتدهی
شده باشند
('Multiple')، دقیقاً
به صورتی که
در ترکیب
نهایی ظاهر
میشوند.
'processing_command' یک
دستور
اختیاری G'MIC
(یا
زنجیرهای
از دستورها)
است که
بهصورت
مجزا بر روی
هر تصویر
اعمال
میشود،
درست پس از
تغییر
اندازه آن و
درست قبل از
قرار گرفتن
در
ترکیببندی
(مانند
افزودن
حاشیه
رنگی،
اعمال
فیلتر، و
غیره).
مقادیر
پیشفرض:
'layout=AH', 'align_or_scale_factor=0.5',
'output_layers=0' و
'processing_command=""'.
مثال:
[#1] sample colorful,eagle,cat,dog +arrange "VH0:1H2:3"
[#2] sample cat,dog,monkey,duck +arrange AH,-0.5
[#3] sample colorful,eagle,cat,dog,flower,rose arrange AH
[#4] sample colorful,eagle,duck +arrange VH0R1:2,,,"sepia shrink xy,20
frame xy,8,255 frame xy,12,0"
autocrop:
_axes,_value1,_value2,...
برش خودکار
تصاویر
انتخابشده
مطابق با
محورها و
مقادیر
مشخصشده.
'axes'
میتواند { x | y
| z | c | xy | xz | xc | yz | yc | zc | xyz | xyc | xzc | yzc | xyzc }
باشد.
اگر هیچ 'axes'
ارائه
نشود، فرض
میشود برش
خودکار
تنها مکانی
است (مانند
'axes=xyz').
اگر هیچ
آرگومان
مقداری
ارائه
نشود،
مقدار برش
بهطور
خودکار حدس
زده
میشود.
مقادیر
پیشفرض:
'axes=xyz'.
همچنین
ببینید:
autocrop_coords.
مثال:
[#1] 400,400,1,3 fill_color 64,128,255 ellipse 50%,50%,120,120,0,1,255
+autocrop
autocrop_components:
_threshold[%],_min_area[%]>=0,_is_high_connectivity={ 0:No | 1:Yes
},_output_type={ 0:Crop | 1:Segmentation | 2:Coordinates }
برش خودکار
و استخراج
مؤلفههای
متصل در
تصاویر
انتخابشده،
بر اساس یک
ماسک
ارائهشده
به عنوان
آخرین
کانال هر یک
از تصاویر
انتخابشده
(مانند
کانال
آلفا).
مقادیر
پیشفرض:
'threshold=0%', 'min_area=0.1%',
'is_high_connectivity=0' و 'output_type=1'.
مثال:
[#1] 256,256 noise 0.1,2 eq 1 dilate_circ 20 label_fg 0,1 normalize 0,255
+neq 0 *[-1] 255 append c +autocrop_components ,
autocrop_coords:
_axes,_value1,_value2,...
مختصات
کادر
احاطهکنندهای
را
بازمیگرداند
که برای برش
خودکار
تصاویر
انتخابشده،
مطابق با
محورها و
مقادیر
مشخصشده
استفاده
خواهد شد.
'axes'
میتواند { x | y
| z | c | xy | xz | xc | yz | yc | zc | xyz | xyc | xzc | yzc | xyzc }
باشد.
اگر هیچ 'axes'
ارائه
نشود، فرض
میشود برش
خودکار
تنها مکانی
است (مانند
'axes=xyz').
اگر هیچ
آرگومان
مقداری
ارائه
نشود،
مقدار برش
بهطور
خودکار حدس
زده میشود.
اگر تصویر
ورودی ثابت
و برابر با
مقدار برش
باشد،
مقدار -1 برای
تمام
مختصات
خروجی
بازگردانده
میشود.
مقادیر
پیشفرض:
'axes=xyz'.
همچنین
ببینید: autocrop.
autocrop_seq:
value1,value2,... | auto
برش خودکار
تصاویر
انتخابشده
با استفاده
از هندسه
برش آخرین
تصویر بر
اساس شدت
مقدار
برداری
مشخصشده،
یا با حدس
خودکار
مقدار برش.
مقدار
پیشفرض:
حالت auto.
مثال:
[#1] image.jpg +fill[-1] 0 ellipse[-1] 50%,50%,30%,20%,0,1,1 autocrop_seq
0
channels:
c0[%],_c1[%],_boundary_conditions
تنها
کانالهای
مشخصشده
از تصاویر
انتخابشده
را نگه
میدارد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض: 'c1=c0'
و 'boundary_conditions=0'.
مثال:
[#1] image.jpg channels 1
[#2] image.jpg luminance channels 0,2
columns:
x0[%],_x1[%],_boundary_conditions
تنها
ستونهای
مشخصشده
از تصاویر
انتخابشده
را نگه
میدارد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض: 'x1=x0'
و 'boundary_conditions=0'.
مثال:
[#1] image.jpg columns -25%,50%
z (+):
میانبری
برای دستور
'crop'.
crop (+):
x0[%],x1[%],_boundary_conditions |
x0[%],y0[%],x1[%],y1[%],_boundary_conditions |
x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary_conditions |
x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary_conditions
برش تصاویر
انتخابشده
با مختصات
ناحیه
مشخصشده.
(معادل
دستور
میانبر 'z').
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'boundary_conditions=0'.
مثال:
[#1] image.jpg +crop -230,-230,280,280,1 crop[0] -230,-230,280,280,0
[#2] image.jpg crop 25%,25%,75%,75%
elevate:
_depth,_is_plain={ 0:No | 1:Yes },_is_colored={ 0:No | 1:Yes }
ارتقای
تصاویر
۲بعدی
انتخابی به
حجمهای
سهبعدی.
مقادیر
پیشفرض:
'depth=64', 'is_plain=1' و 'is_colored=1'.
مثال:
[#1] sample colorful,64 +elevate 32
expand:
axes,size[%],_boundary_conditions={ 0:Dirichlet | 1:Neumann | 2:Periodic |
3:Mirror }
گسترش
تصاویر
انتخابشده
در امتداد
محورهای
مشخصشده.
'axes'
میتواند { x | y
| z | c | xy | xz | xc | yz | yc | zc | xyz | xyc | xzc | yzc | xyzc }
باشد.
مقدار
پیشفرض:
'boundary_conditions=0'.
مثال:
[#1] image.jpg expand xy,30
extract:
"condition",_output_type={ 0:XYZC-coords | 1:XYZ-coords |
2:Scalar-values | 3:Vector-values | 4:XYZC-coords + scalar value |
5:XYZ-coords +
vector-values }
استخراج
فهرستی از
مختصات یا
مقادیر از
تصویر
انتخابشده،
در جایی که
شرط ریاضی
مشخصشده
برقرار
باشد.
برای N
مختصات
منطبق،
نتیجه یک
تصویر 1xNx1x4
است.
مقادیر
پیشفرض:
'output_type=0'.
مثال:
[#1] sp lena +extract "norm(I)>128",3
extract_region:
[label_image],_extract_xyz_coordinates={ 0:No | 1:Yes
},_label_1,...,_label_M
استخراج
تمام
پیکسلهای
تصاویر
انتخابشده
که برچسب
متناظر
آنها در
'[label_image]' برابر
با 'label_m' است، و
خروجی دادن
آنها به
صورت M تصویر
ستونی.
مقدار
پیشفرض:
'extract_xyz_coordinates=0'.
مثال:
[#1] image.jpg +blur 3 quantize. 4,0 +extract_region[0] [1],0,1,3
mirror (+):
{ x | y | z }...{ x | y | z }
آینهای
کردن
تصاویر
انتخابشده
در امتداد
محورهای
مشخصشده.
مثال:
[#1] image.jpg +mirror y +mirror[0] c
[#2] image.jpg +mirror x +mirror y append_tiles 2,2
permute (+):
permutation
جابهجایی
(جایگشت)
محورهای
تصویر
انتخابی بر
اساس
جایگشت
مشخصشده.
'permutation' ترکیبی
از مجموعه
نویسههای
{x|y|z|c} است،
مانند 'xycz', 'cxyz',
...مثال:
[#1] image.jpg permute yxzc
rs:
میانبری
برای دستور
'rescale2d'.
rescale2d:
_width[%]={ 0:Any | >0 },_height[%]={ 0:Any | >0
},-1=<_interpolation<=6,_mode={ 0:Inside | 1:Padded-inside | 2:Outside
| 3:Cropped-outside }
تغییر
اندازه
تصویرهای
دوبعدی
انتخابشده
ضمن حفظ
نسبت تصویر.
مقدار 'interpolation'
میتواند {
-1:Status only | 0:None | 1:Nearest | 2:Average | 3:Linear | 4=Grid |
5=Bicubic | 6=Lanczos } باشد.
هنگامی که
'interpolation==-1' باشد،
اندازه
تصویر
عملاً
تغییر
نمیکند،
اما
اندازهای
که برای
آخرین
تصویر
انتخابشده
استفاده
میشد، در
مقدار
وضعیت (status)
بازگردانده
میشود.
اندازه هر
تصویر
تغییریافته
بر اساس 'mode'
مشخصشده
محاسبه
میشود:
* اگر 'mode==0'
باشد،
اندازه
تصویر
حداکثر
'(width,height)' است.
* اگر 'mode==1' یا 'mode==3'
باشد،
اندازه
تصویر
دقیقاً
'(width,height)' است.
* اگر 'mode==2'
باشد،
اندازه
تصویر
حداقل '(width,height)'
است.
(معادل
دستور
میانبر 'rs').
مقادیر
پیشفرض:
'width=height=0'، 'interpolation=2' و
'mode=0'.
rs3d:
میانبری
برای دستور
'rescale3d'.
rescale3d:
_width[%]={ 0:Any | >0 },_height[%]={ 0:Any | >0 },_depth[%]={ 0:Any |
>0 },-1=<_interpolation<=6,_mode={ 0:Inside | 1:Padded-inside |
2:Outside | 3 |
Cropped-outside }
تغییر
اندازه
تصویرهای
سهبعدی
انتخابشده
ضمن حفظ
نسبت تصویر.
مقدار 'interpolation'
میتواند {
-1:Status only | 0:None | 1:Nearest | 2:Average | 3:Linear | 4=Grid |
5=Bicubic | 6=Lanczos } باشد.
هنگامی که
'interpolation==-1' باشد،
اندازه
تصویر
عملاً
تغییر
نمیکند،
اما
اندازهای
که برای
آخرین
تصویر
انتخابشده
استفاده
میشد، در
مقدار
وضعیت (status)
بازگردانده
میشود.
اندازه هر
تصویر
تغییریافته
بر اساس 'mode'
مشخصشده
محاسبه
میشود:
* اگر 'mode==0'
باشد،
اندازه
تصویر
حداکثر
'(width,height)' است.
* اگر 'mode==1' یا 'mode==3'
باشد،
اندازه
تصویر
دقیقاً
'(width,height)' است.
* اگر 'mode==2'
باشد،
اندازه
تصویر
حداقل '(width,height)'
است.
(معادل
دستور
میانبر 'rs3d').
مقادیر
پیشفرض:
'width=height=depth=0'، 'interpolation=2' و
'mode=0'.
r (+):
میانبری
برای دستور
'resize'.
resize (+):
{[image_w] | width[%]>0},_{[image_h] | height[%]>0},_{[image_d] |
depth[%]>0},_{[image_s] |
spectrum[%]>0},_interpolation,_boundary_conditions,_ax,
_ay,_az,_ac
تغییر
اندازه
تصویرهای
انتخابشده
با هندسه
مشخصشده.
(معادل
دستور
میانبر 'r').
مقدار 'interpolation'
میتواند {
-1:None (memory content) | 0:None | 1:Nearest | 2:Average | 3:Linear |
4=Grid | 5=Bicubic | 6=Lanczos } باشد.
پارامتر
'boundary_conditions' بر
اساس حالت
انتخابی
'interpolation' معانی
متفاوتی
دارد:
. هنگامی که
'interpolation=={ -1 | 1 | 2 | 4 }' باشد،
'boundary_conditions'
بیمعنی
است.
. هنگامی که
'interpolation==0' باشد،
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
. هنگامی که
'interpolation=={ 3 | 5 | 6 }' باشد،
'boundary_conditions'
میتواند { 0:None
| 1:Neumann } باشد.
مقادیر 'ax,ay,az,ac'
مرکزیت را
در راستای
هر محور
هنگامی که
'interpolation=0 or 4' باشد
تنظیم
میکنند
(بهطور
پیشفرض
روی '0' تنظیم
شده است،
باید در
محدوده [0,1]
تعریف شود).
مقادیر
پیشفرض:
'interpolation=1'، 'boundary_conditions=0' و
'ax=ay=az=ac=0'.
مثال:
[#1] image.jpg +resize[-1] 256,128,1,3,2 +resize[-1]
120%,120%,1,3,0,1,0.5,0.5 +resize[-1] 120%,120%,1,3,0,0,0.2,0.2 +resize[-1]
[0],[0],1,3,4
ri:
میانبری
برای دستور
'resize_as_image'.
resize_as_image:
[reference],_interpolation,_boundary_conditions,_ax,_ay,_az,_ac
تغییر
اندازه
تصویرهای
انتخابشده
به هندسه
تصویر [reference]
مشخصشده.
(معادل
دستور
میانبر 'ri').
مقادیر
پیشفرض:
'interpolation=1'، 'boundary_conditions=0' و
'ax=ay=az=ac=0'.
مثال:
[#1] image.jpg sample duck +resize_as_image[-1] [-2]
resize_displacement:
width[%]>0,_height[%]>0,_depth[%]>0
تغییر
اندازه
میدانهای
جابهجایی
انتخابشده
با هندسه
مشخصشده.
در طول این
فرایند،
بردارهای
جابهجایی
نیز بر اساس
نسبتهای
متناظر در
امتداد هر
محور
مقیاسبندی
میشوند.
مقادیر
پیشفرض:
'height=100%' و 'depth=100%'.
resize_mn:
width[%]>=0,_height[%]>=0,_depth[%]>=0,_B_value,_C_value
تغییر
اندازه
تصویرهای
انتخابشده
با فیلتر Mitchell-Netravali
(مکعبی).
برای
جزئیات
بیشتر
درباره این
روش،
ببینید:
https://de.wikipedia.org/wiki/Mitchell-Netravali-Filter.
مقادیر
پیشفرض:
'height=100%'، 'depth=100%'، 'B=0.3333'
و 'C=0.3333'.
مثال:
[#1] image.jpg rescale2d 32 resize_mn 800%,800%
resize_pow2:
_interpolation,_boundary_conditions,_ax,_ay,_az,_ac
تغییر
اندازه
تصویرهای
انتخابشده
به گونهای
که هر بعد
توانی از ۲
باشد.
مقدار 'interpolation'
میتواند {
-1:None (memory content) | 0:None | 1:Nearest | 2:Average | 3:Linear |
4:Grid | 5:Bicubic | 6:Lanczos } باشد.
پارامتر
'boundary_conditions' بر
اساس حالت
انتخابی
'interpolation' معانی
متفاوتی
دارد:
. هنگامی که
'interpolation=={ -1 | 1 | 2 | 4 }' باشد،
'boundary_conditions'
بیمعنی
است.
. هنگامی که
'interpolation==0' باشد،
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
. هنگامی که
'interpolation=={ 3 | 5 | 6 }' باشد،
'boundary_conditions'
میتواند { 0:None
| 1:Neumann } باشد.
مقادیر 'ax,ay,az,ac'
مرکزیت را
در راستای
هر محور
هنگامی که
'interpolation=0' باشد
تنظیم
میکنند
(بهطور
پیشفرض
روی '0' تنظیم
شده است،
باید در
محدوده [0,1]
تعریف شود).
مقادیر
پیشفرض:
'interpolation=0'، 'boundary_conditions=0' و
'ax=ay=az=ac=0'.
مثال:
[#1] image.jpg +resize_pow2[-1] 0
rotate (+):
angle,_interpolation,_boundary_conditions,_center_x[%],_center_y[%] |
u,v,w,angle,interpolation,boundary_conditions,_center_x[%],_center_y[%],_center_z[%]
چرخش
تصویرهای
انتخابشده
با زاویه
مشخصشده
(به درجه)، و
به صورت
اختیاری
محور
سهبعدی (u,v,w).
مقدار 'interpolation'
میتواند { 0:None
| 1:Linear | 2:Bicubic } باشد.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
هنگامی که
مرکز چرخش
(cx,cy,_cz) مشخص
شود،
اندازه
تصویر حفظ
میشود.
مقادیر
پیشفرض:
'interpolation=1'، 'boundary_conditions=0' و
'center_x=center_y=(undefined)'.
مثال:
[#1] image.jpg +rotate -25,1,2,50%,50% rotate[0] 25
rotate_tileable:
angle,_max_size_factor>=0
چرخش
تصویرهای
انتخابشده
با زاویه
مشخصشده و
کاشیپذیر
کردن آنها.
اگر اندازه
حاصل از
تصویر بیش
از حد بزرگ
باشد،
تصویر با یک
تصویر 1x1
جایگزین
میشود.
مقادیر
پیشفرض:
'max_size_factor=8'.
مثال:
[#1] sample colorful,128 +rotate_tileable 16
rows:
y0[%],_y1[%],_boundary_conditions
نگهداشتن
تنها
سطرهای
مشخصشده
از
تصویرهای
انتخابشده.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض: 'y1=y0'
و 'boundary_conditions=0'.
مثال:
[#1] image.jpg rows -25%,50%
scale2x:
دو برابر
کردن
اندازه XY
تصویرهای
انتخابشده
با استفاده
از
الگوریتم
Scale2x.
مثال:
[#1] image.jpg threshold 50% resize 50%,50% +scale2x
scale2x_cnn:
_sharpness>=0
دو برابر
کردن
اندازه XY
تصویرهای
انتخابشده
با استفاده
از یک شبکه
عصبی
پیچشی.
مقدار
پیشفرض:
'sharpness=1.25'.
مثال:
[#1] image.jpg rescale2d 128 +scale2x_cnn ,
scale3x:
سه برابر
کردن
اندازه XY
تصویرهای
انتخابشده
با استفاده
از
الگوریتم
Scale3x.
مثال:
[#1] image.jpg threshold 50% resize 33%,33% +scale3x
scale_dcci2x:
_edge_threshold>=0,_exponent>0,_extend_1px={ 0:No | 1:Yes }
دو برابر
کردن
اندازه XY
تصویرهای
انتخابشده
با استفاده
از
درونیابی
کانولوشن
مکعبی
جهتدار،
همانطور
که در
https://en.wikipedia.org/wiki/Directional_Cubic_Convolution_Interpolation
شرح داده
شده است.
مقادیر
پیشفرض:
'edge_threshold=1.15'، 'exponent=5' و
'extend_1px=0'.
مثال:
[#1] image.jpg rescale2d 128 +scale_dcci2x ,
seamcarve:
_width[%]>=0,_height[%]>=0,_is_priority_channel={ 0:No | 1:Yes
},_is_antialiasing={ 0:No | 1:Yes },_maximum_seams[%]>=0
تغییر
اندازه
تصویرهای
انتخابشده
با هندسه
دوبعدی
مشخصشده
با استفاده
از
الگوریتم
seam-carving.
مقادیر
پیشفرض:
'height=100%'، 'is_priority_channel=0'،
'is_antialiasing=1' و 'maximum_seams=25%'.
مثال:
[#1] image.jpg seamcarve 60%
shift (+):
vx[%],_vy[%],_vz[%],_vc[%],_boundary_conditions,_interpolation={
0:Nearest_neighbor | 1:Linear }
انتقال
تصویرهای
انتخابشده
بر اساس
بردار
جابهجایی
مشخصشده.
بردار
جابهجایی
میتواند
غیرصحیح
باشد که در
این حالت
باید
درونیابی
خطی انتخاب
شود.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'boundary_conditions=0' و 'interpolation=0'.
مثال:
[#1] image.jpg +shift[0] 50%,50%,0,0,0 +shift[0] 50%,50%,0,0,1 +shift[0]
50%,50%,0,0,2
shrink:
axes,size[%],_boundary_conditions={ 0:Dirichlet | 1:Neumann | 2:Periodic |
3:Mirror }
منقبض کردن
تصویرهای
انتخابشده
در امتداد
محورهای
مشخصشده.
مقدار 'axes'
میتواند { x | y
| z | c | xy | xz | xc | yz | yc | zc | xyz | xyc | xzc | yzc | xyzc }
باشد.
مقدار
پیشفرض:
'boundary_conditions=0'.
مثال:
[#1] image.jpg shrink xy,100
slices:
z0[%],_z1[%],_boundary_conditions
نگهداشتن
تنها
برشهای
مشخصشده
از
تصویرهای
انتخابشده.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض: 'z1=z0'
و 'boundary_conditions=0'.
sort (+):
_ordering={ +:Increasing | -:Decreasing },_axis={ x | y | z | c }
مرتبسازی
مقادیر
پیکسلهای
تصویرهای
انتخابشده.
اگر 'axis' مشخص
شده باشد،
مرتبسازی
بر اساس
دادههای
نخستین
ستون/سطر/برش/کانال
از
تصویرهای
انتخابشده
انجام
میشود.
مقادیر
پیشفرض:
'ordering=+' و 'axis=(undefined)'.
مثال:
[#1] 64 rand 0,100 +sort display_graph 400,300,3
s (+):
میانبری
برای دستور
'split'.
split (+):
{ x | y | z | c }...{ x | y | z | c },_split_mode[%],_max_parts>0 |
keep_splitting_values={ +:Increasing | -:Decreasing },_{ x | y | z | c }...{
x | y | z | c },value1,_value2,... |
(no arg)
تقسیم
تصویرهای
انتخابشده
در امتداد
محورهای
مشخصشده،
یا بر اساس
توالیای
از مقادیر
نردهای
(به صورت
اختیاری در
امتداد
محورهای
مشخصشده).
(معادل
دستور
میانبر 's').
آرگومان 'split_mode'
نحوه انجام
تقسیم را
مشخص
میکند. این
آرگومان
میتواند
شامل موارد
زیر باشد:
* '0': تقسیم
تصویر بر
اساس
مقادیر
ثابت
متوالی؛
* 'N' (که در آن 'N'
یک عدد صحیح
مثبت است):
تقسیم
تصویر به 'N'
بخش همگن؛
* '-N[%]' (که در آن
'N' یک عدد
صحیح مثبت
است): تقسیم
تصویر به
بلوکهایی
به اندازه 'N'
(به صورت
اختیاری به
عنوان
درصدی از
ابعاد
تصویر مشخص
میشود).
در صورت
مشخص شدن،
'max_parts'
محدودیتی
را بر تعداد
تصویرهای
حاصل تعیین
میکند.مقدار
پیشفرض:
'N=-1'.
مثال:
[#1] image.jpg split c
[#2] image.jpg split y,3
[#3] image.jpg split x,-128
[#4] image.jpg split x,-30%,2
[#5] 1,20,1,1,"1,2,3,4" +split -,2,3 append[1--1] y
[#6] (1,2,2,3,3,3,4,4,4,4) +split x,0 append[1--1] y
split_tiles:
M!=0,_N!=0,_is_homogeneous={ 0:No | 1:Yes }
تقسیم
تصویرهای
انتخابشده
به صورت یک
آرایه MxN از
کاشیها.
اگر M یا N
منفی باشد،
در عوض
نشاندهنده
اندازه
کاشی خواهد
بود.
مقادیر
پیشفرض: 'N=M'
و 'is_homogeneous=0'.
مثال:
[#1] image.jpg +local split_tiles 5,4 blur 3,0 sharpen 700 append_tiles 4,5
done
undistort:
-1<=_amplitude<=1,_aspect_ratio,_zoom,_center_x[%],_center_y[%],_boundary_conditions
تصحیح
اعوجاجهای
بشکهای/بالشتکی
رخداده با
لنزهای
زاویهباز
(wide-angle).
مراجع:
[1] Zhang Z. (1999). Flexible camera calibration by viewing a plane from
unknown orientation.
[2] Andrew W. Fitzgibbon (2001). Simultaneous linear estimation of multiple
view geometry and lens distortion.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'amplitude=0.25'، 'aspect_ratio=0'،
'zoom=0'، 'center_x=center_y=50%' و
'boundary_conditions=0'.
y (+):
میانبری
برای دستور
'unroll'.
unroll (+):
_axis={ x | y | z | c }
باز کردن (unroll)
تصویرهای
انتخابشده
در امتداد
محور
مشخصشده.
(معادل
دستور
میانبر 'y').
مقدار
پیشفرض:
'axis=y'.
مثال:
[#1] (1,2,3;4,5,6;7,8,9) +unroll y
upscale_smart:
width[%],_height[%],_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0
افزایش
مقیاس
تصویرهای
انتخابشده
با یک
الگوریتم
نگهدارنده
لبهها.
مقادیر
پیشفرض:
'height=100%'، 'depth=100%'،
'smoothness=2'، 'anisotropy=0.4' و
'sharpening=10'.
مثال:
[#1] image.jpg rescale2d ,100 +upscale_smart 500%,500% append x
volumetric2d:
_x[%],_y[%],_z[%],_separator_size>=0
تبدیل
تصویرهای
سهبعدی
حجمی (volumetric)
انتخابشده
به نمای
دوبعدی.
مقادیر
پیشفرض:
'x=y=z=50%' و 'separator_size=0'.
مثال:
[#1] image.jpg rescale2d 64 animate noise,0,100,50 cut 0,255 append z
volumetric2d 50%,50%,50%,1
11.8.
فیلترگذاری
(Filtering)
-------------------------
bandpass:
_min_freq[%],_max_freq[%]
اعمال
فیلتر
میانگذر (bandpass)
بر روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'min_freq=0' و 'max_freq=20%'.
مثال:
[#1] image.jpg bandpass 1%,3%
آموزش:
https://gmic.eu/oldtutorial/_bandpass
bilateral (+):
[guide],std_deviation_s[%]>=0,std_deviation_r[%]>=0,_sampling_s>=0,_sampling_r>=0
|
std_deviation_s[%]>=0,std_deviation_r[%]>=0,_sampling_s>=0,_sampling_r>=0
ماتکردن
تصویرهای
انتخابشده
با فیلتر
دوجانبه
ناهمسانگرد
(به طور
اختیاری
مشترک/متقاطع
یا joint/cross).
اگر تصویر
راهنما (guide)
ارائه شده
باشد، برای
هدایت
فیلتر
هموارسازی
استفاده
میشود.
اندازه xyz
تصویر
راهنما
باید با
تصویرهای
انتخابشده
یکسان باشد.
برای تنظیم
خودکار،
آرگومانهای
'sampling' را برابر
'0' قرار
دهید.
مثال:
[#1] image.jpg repeat 5 { bilateral 10,10 }
b (+):
میانبری
برای دستور
'blur'.
blur (+):
std_deviation[%]>=0,_boundary_conditions,_kernel |
axes,std_deviation[%]>=0,_boundary_conditions,_kernel
ماتکردن
تصویرهای
انتخابشده
با فیلتر Deriche
یا گاوسی
(پیادهسازی
بازگشتی).
(معادل
دستور
میانبر 'b').
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'kernel'
میتواند {
0:Deriche | 1:Gaussian } باشد.
در صورت
تعیین،
آرگومان 'axes'
دنبالهای
از { x | y | z | c } است.
تعیین
چندباره یک
محور،
ماتسازی
را نیز
چندین بار
اعمال
میکند.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'kernel=1'.
مثال:
[#1] image.jpg +blur 5,0 +blur[0] 5,1
[#2] image.jpg +blur y,10%
آموزش:
https://gmic.eu/oldtutorial/_blur
blur_angular:
amplitude[%],_center_x[%],_center_y[%]
اعمال
ماتسازی
زاویهای
بر روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'.
مثال:
[#1] image.jpg blur_angular 2%
آموزش:
https://gmic.eu/oldtutorial/_blur_angular
blur_bloom:
_amplitude>=0,_ratio>=0,_nb_iter>=0,_blend_operator={ + | max | min
},_kernel={ 0:Deriche | 1:Gaussian | 2:Box | 3:Triangle | 4:Quadratic },
_normalize_scales={ 0:No | 1:Yes },_axes
اعمال
فیلتر بلوم
(bloom) که چندین
فیلتر
ماتکننده
با
شعاعهای
گوناگون را
ترکیب
میکند،
و در مقایسه
با
ماتشدگی
ساده،
درخششی
بزرگتر
اما
واضحتر
پدید
میآورد.
در صورت
تعیین،
آرگومان 'axes'
دنبالهای
از { x | y | z | c } است.
تعیین
چندباره یک
محور،
ماتسازی
را نیز
چندین بار
اعمال
میکند.
مرجع: Masaki Kawase, "Practical
Implementation of High Dynamic Range Rendering", GDC 2004.
مقادیر
پیشفرض:
'amplitude=1'، 'ratio=2'،
'nb_iter=5'، 'blend_operator=+'،
'kernel=1'،
'normalize_scales=0' و 'axes=(all)'
مثال:
[#1] image.jpg blur_bloom ,
blur_linear:
amplitude1[%],_amplitude2[%],_angle,_boundary_conditions={ 0:Dirichlet |
1:Neumann }
اعمال
ماتسازی
خطی بر روی
تصویرهای
انتخابشده
با زاویه و
دامنههای
مشخصشده.
مقادیر
پیشفرض:
'amplitude2=0'، 'angle=0' و
'boundary_conditions=1'.
مثال:
[#1] image.jpg blur_linear 10,0,45
آموزش:
https://gmic.eu/oldtutorial/_blur_linear
blur_radial:
amplitude[%],_center_x[%],_center_y[%]
اعمال
ماتسازی
شعاعی بر
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'.
مثال:
[#1] image.jpg blur_radial 2%
آموزش:
https://gmic.eu/oldtutorial/_blur_radial
blur_selective:
sigma>=0,_edges>0,_nb_scales>0
ماتکردن
تصویرهای
انتخابشده
با استفاده
از
مقیاسهای
انتخابی
گاوسی.
مقادیر
پیشفرض:
'sigma=5'، 'edges=0.5' و
'nb_scales=5'.
مثال:
[#1] image.jpg noise 20 cut 0,255 +local[-1] repeat 4 { blur_selective , }
done
آموزش:
https://gmic.eu/oldtutorial/_blur_selective
boxfilter (+):
size[%]>=0,_order,_boundary_conditions,_nb_iter>=0 |
axes,size[%]>=0,_order,_boundary_conditions,_nb_iter>=0
ماتکردن
تصویرهای
انتخابشده
با یک فیلتر
جعبهای (box filter)
با اندازه
مشخص
(پیادهسازی
سریع
بازگشتی).
'order'
میتواند {
0:Smooth | 1:1st-derivative | 2:2nd-derivative }
باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
در صورت
تعیین،
آرگومان 'axes'
دنبالهای
از { x | y | z | c } است.
تعیین
چندباره یک
محور،
ماتسازی
را نیز
چندین بار
اعمال
میکند.
مقادیر
پیشفرض:
'order=0'، 'boundary_conditions=1' و
'nb_iter=1'.
مثال:
[#1] image.jpg +boxfilter 5%
[#2] image.jpg +boxfilter y,3,1
bump2normal:
تبدیل
نگاشتهای
برجستگی (bumpmap)
انتخابشده
به
نگاشتهای
نرمال (normalmap).
مثال:
[#1] 300,300 circle 50%,50%,128,1,255 blur 2% +bump2normal
closing:
size>=0 |
size_x>=0,size_y>=0,_size_z>=0 |
[kernel],_boundary_conditions,_is_real={ 0:Binary-mode | 1:Real-mode }
اعمال
عملگر بستن
ریختشناختی
(morphological closing) بر روی
تصویرهای
انتخابشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_z=1'، 'boundary_conditions=1' و
'is_real=0'.
مثال:
[#1] image.jpg +closing 10
closing_circ:
_size>=0,_is_real={ 0:No | 1:Yes }
اعمال
گستارش
دایرهای
بر روی
تصویرهای
انتخابشده
با اندازه
مشخص.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +closing_circ 7
convolve (+):
[mask],_boundary_conditions,_is_normalized={ 0:No | 1:Yes
},_channel_mode,_xcenter,_ycenter,_zcenter,_xstride>0,_ystride>0,_zstride>0,_xdilation,
_ydilation,_zdilation,_xoffset,_yoffset,_zoffset,_xsize>=0,_ysize>=0,_zsize>=0
پیچش
(کانولوشن)
تصویرهای
انتخابشده
با ماسک
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'channel_mode'
میتواند { 0:All
| 1:One-for-one | 2:Partial sum | 3:Full sum }
باشد.
نکته: برای
هر یک از
گروههای
پارامتر 'center'
('xcenter','ycenter','zcenter')، 'stride'
('xstride',
'ystride','zstride')، 'dilation'
('xdilation','ydilation','zdilation')، 'offset'
('xoffset','yoffset',
'zoffset') و 'size'
('xsize','ysize','zsize')، یا
باید هر سه
مؤلفه
تعیین شوند
یا
هیچکدام
از آنها.
تنظیم
تنها یک یا
دو مؤلفه از
یک گروه
معین مجاز
نیست (برای
مثال،
تعیین 'xoffset'
بدون تعیین
همزمان 'yoffset'
و
'zoffset' نامعتبر
است).
مقادیر
پیشفرض:
'boundary_conditions=1'، 'is_normalized=0'،
'channel_mode=1'،
'xcenter=ycenter=zcenter=(undefined)'،
'xstride=ystride=zstride=1'،
'xdilation=ydilation=zdilation=1'،
'xoffset=yoffset=zoffset=0' و
'xsize=ysize=zsize=(input_size/stride)'.
مثال:
[#1] image.jpg (0,1,0;1,-4,1;0,1,0) convolve[-2] [-1] keep[-2]
[#2] image.jpg (0,1,0) resize[-1] 130,1,1,1,3 +convolve[0] [1]
آموزش:
https://gmic.eu/oldtutorial/_convolveconvolve_fft:
[mask],_boundary_conditions
کانولوشن
تصاویر
انتخابشده
با ماسک
مشخصشده
در حوزه
فوریه.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مثال:
[#1] image.jpg 100%,100% gaussian[-1] 20,1,45 +convolve_fft[0] [1]
correlate (+):
[mask],_boundary_conditions,_is_normalized={ 0:No | 1:Yes
},_channel_mode,_xcenter,_ycenter,_zcenter,_xstride>0,_ystride>0,_zstride>0,_xdilation,
_ydilation,_zdilation,_xoffset,_yoffset,_zoffset,_xsize>=0,_ysize>=0,_zsize>=0
همبسته
کردن
تصاویر
انتخابشده
با ماسک
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'channel_mode'
میتواند { 0:All
| 1:One-for-one | 2:Partial sum | 3:Full sum }
باشد.
نکته: برای
هر یک از
گروههای
پارامتری 'center'
('xcenter'و 'ycenter'و 'zcenter')،
'stride' ('xstride'،
'ystride'، 'zstride')، 'dilation'
('xdilation'، 'ydilation'،
'zdilation')، 'offset' ('xoffset'،
'yoffset'،
'zoffset') و 'size' ('xsize'،
'ysize'، 'zsize')،
باید یا هر
سه مؤلفه
مشخص شوند،
یا
هیچکدام.
تنظیم
تنها یک یا
دو مؤلفه از
یک گروه
مشخص مجاز
نیست (برای
مثال، مشخص
کردن 'xoffset'
بدون تعیین
'yoffset' و
'zoffset' نامعتبر
است).
مقادیر
پیشفرض:
'boundary_conditions=1'، 'is_normalized=0'،
'channel_mode=1'، 'xcenter=ycenter=zcenter=-1'،
'xstride=ystride=zstride=1'،
'xdilation=ydilation=zdilation=1'،
'xoffset=yoffset=zoffset=0' و
'xsize=ysize=zsize=(input_size/stride)'.
مثال:
[#1] image.jpg (0,1,0;1,-4,1;0,1,0) correlate[-2] [-1] keep[-2]
[#2] image.jpg +crop 40%,40%,60%,60% +correlate[0] [-1],0,1
cross_correlation:
[mask]
محاسبه
همبستگی
متقابل
تصاویر
انتخابشده
با ماسک
مشخصشده.
مثال:
[#1] image.jpg +shift -30,-20 +cross_correlation[0] [1]
curvature:
محاسبه
انحناهای
ایزوفوت در
تصاویر
انتخابشده.
مثال:
[#1] image.jpg blur 10 curvature
dct:
_{ x | y | z }...{ x | y | z } |
(no arg)
محاسبه
تبدیل
کسینوسی
گسسته (DCT)
تصاویر
انتخابشده،
بهصورت
اختیاری
تنها در
امتداد
محورهای
مشخصشده.
تصاویر
خروجی
همیشه
دارای
ابعاد زوج
هستند،
بنابراین
این دستور
ممکن است
اندازه
تصاویر
انتخابشده
را تغییر
دهد.
مقادیر
پیشفرض: (no arg)
همچنین
ببینید: idct.
مثال:
[#1] image.jpg +dct +idct[-1] abs[-2] +[-2] 1 log[-2]
آموزش:
https://gmic.eu/oldtutorial/_dct-and-idct
deblur:
amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={
0:Tikhonov | 1:Meancurv. | 2:TV }
رفع تاری
تصویر با
استفاده از
الگوریتم
منظمشدهی
Jansson-Van Cittert.
مقادیر
پیشفرض:
'nb_iter=10'، 'dt=20'، 'regul=0.7'
و 'regul_type=1'.
مثال:
[#1] image.jpg blur 3 +deblur 3,40,20,0.01
deblur_goldmeinel:
sigma>=0,_nb_iter>=0,_acceleration>=0,_kernel_type={ 0:Deriche |
1:Gaussian }.
رفع تاری
تصاویر
انتخابشده
با استفاده
از
الگوریتم
Gold-Meinel.
مقادیر
پیشفرض:
'nb_iter=8'، 'acceleration=1' و
'kernel_type=1'.
مثال:
[#1] image.jpg +blur 1 +deblur_goldmeinel[-1] 1
deblur_richardsonlucy:
sigma>=0, nb_iter>=0, _kernel_type={ 0:Deriche | 1:Gaussian }.
رفع تاری
تصاویر
انتخابشده
با استفاده
از
الگوریتم
Richardson-Lucy.
مقادیر
پیشفرض:
'nb_iter=50' و 'kernel_type=1'.
مثال:
[#1] image.jpg +blur 1 +deblur_richardsonlucy[-1] 1
deconvolve_fft:
[kernel],_regularization>=0
واکانولوشن
تصاویر
انتخابشده
با ماسک
مشخصشده
در فضای
فوریه.
مقدار
پیشفرض:
'regularization>=0'.
مثال:
[#1] image.jpg +gaussian 5 +convolve_fft[0] [1] +deconvolve_fft[-1] [1]
deinterlace:
_method
حذف
درهمبافتگی
(Deinterlace) تصاویر
انتخابشده
('method'
میتواند {
0:Standard | 1:Motion-compensated }
باشد).
مقدار
پیشفرض:
'method=0'.
مثال:
[#1] image.jpg +rotate 3,1,1,50%,50% resize 100%,50% resize 100%,200%,1,3,4
shift[-1] 0,1 add +deinterlace 1
denoise (+):
[guide],std_deviation_s[%]>=0,std_deviation_r[%]>=0,_patch_size>0,_lookup_size>0,_smoothness,_fast_approx={
0:No | 1:Yes } |
std_deviation_s[%]>=0,std_deviation_r[%]>=0,_patch_size>0,_lookup_size>0,_smoothness,_fast_approx={
0:No | 1:Yes }
حذف نویز
تصاویر
انتخابشده
با
میانگینگیری
غیرمحلی
وصلهها (non-local patch
averaging).
مقادیر
پیشفرض:
'patch_size=5'، 'lookup_size=6' و
'smoothness=1'.
مثال:
[#1] image.jpg noise 20 cut 0,255 +denoise 8,8,7
denoise_haar:
_threshold>=0,_nb_scales>=0,_cycle_spinning>0
حذف نویز
تصاویر
انتخابشده
با استفاده
از
آستانهگذاری
موجک هار
همراه با
چرخش
چرخهای (cycle spinning).
مقدار 'nb_scales==0'
را قرار
دهید تا
تعداد
بهینه
مقیاسها
بهصورت
خودکار
تعیین شود.
مقادیر
پیشفرض:
'threshold=1.4'، 'nb_scale=0' و
'cycle_spinning=10'.
مثال:
[#1] image.jpg noise 20 cut 0,255 +denoise_haar[-1] 0.8
denoise_cnn:
_noise_level>=0,_patch_size>0
حذف نویز
تصاویر
انتخابشده
با استفاده
از یک شبکه
عصبی پیچشی
(CNN).
محدوده
مقادیر
ورودی باید
[0,255] باشد.
محدوده
مقادیر
خروجی [0,255] است.
اگر 'std_noise==0'
باشد، سطح
نویز
بهطور
خودکار
برای هر
تصویر
انتخابشده
برآورد
میشود.
مقادیر
پیشفرض:
'noise_level=0 (auto)' و 'patch_size=64'.
مثال:
[#1] image.jpg noise 20 cut 0,255 +denoise_cnn 0
denoise_patchpca:
_strength>=0,_patch_size>0,_lookup_size>0,_spatial_sampling>0
حذف نویز
تصاویر
انتخابشده
با استفاده
از
الگوریتم
patch-pca.
مقادیر
پیشفرض:
'patch_size=7'، 'lookup_size=11'،
'details=1.8' و 'spatial_sampling=5'.
مثال:
[#1] image.jpg +noise 20 cut[-1] 0,255 +denoise_patchpca[-1] ,
deriche (+):
std_deviation[%]>=0,order={ 0 | 1 | 2 },axis={ x | y | z | c
},_boundary_conditions
اعمال
فیلتر
بازگشتی Deriche
روی تصاویر
انتخابشده،
در امتداد
محور
مشخصشده و
با
انحراف
معیار،
مرتبه و
شرایط مرزی
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'boundary_conditions=1'.
مثال:
[#1] image.jpg deriche 3,1,x
[#2] image.jpg +deriche 30,0,x deriche[-2] 30,0,y add
آموزش:
https://gmic.eu/oldtutorial/_deriche
dilate (+):
size[%]>=0 |
size_x[%]>=0,size_y[%]>=0,size_z[%]>=0 |
[kernel],_boundary_conditions,_is_real={ 0:Binary-mode | 1:Real-mode }
اتساع
تصاویر
انتخابشده
با یک عنصر
ساختاری
مستطیلی یا
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_z=1'، 'boundary_conditions=1' و
'is_real=0'.
مثال:
[#1] image.jpg +dilate 10
dilate_circ:
_size[%]>=0,_boundary_conditions,_is_real={ 0:No | 1:Yes }
اعمال
اتساع
دایرهای
روی تصاویر
انتخابشده
با اندازه
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +dilate_circ 7
dilate_oct:
_size[%]>=0,_boundary_conditions,_is_real={ 0:No | 1:Yes }
اعمال
اتساع
هشتضلعی
روی تصاویر
انتخابشده
با اندازه
مشخصشده.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +dilate_oct 7
dilate_threshold:
size_x>=1,size_y>=1,size_z>=1,_threshold>=0,_boundary_conditions
اتساع
تصاویر
انتخابشده
در فضای (X,Y,Z,I).
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_y=size_x'، 'size_z=1'،
'threshold=255' و 'boundary_conditions=1'.
divergence:
محاسبه
دیورژانس
میدانهای
برداری
انتخابشده.
مثال:
[#1] image.jpg luminance +gradient append[-2,-1] c divergence[-1]
dog:
_sigma1[%]>=0,_sigma2[%]>=0
محاسبه
تفاضل
گاوسی (DoG) در
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'sigma1=2%' و 'sigma2=3%'.
مثال:
[#1] image.jpg dog 2,3
diffusiontensors:
_sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={ 0:No |
1:Yes }
محاسبه
تانسورهای
نفوذ در
تصاویر
انتخابشده
برای
الگوریتمهای
هموارسازی
با حفظ لبه.
مقادیر
پیشفرض:
'sharpness=0.7'، 'anisotropy=0.3'،
'alpha=0.6'، 'sigma=1.1' و
'is_sqrt=0'.
مثال:
[#1] image.jpg diffusiontensors 0.8 abs pow 0.2
آموزش:
https://gmic.eu/oldtutorial/_diffusiontensors
erode (+):
size[%]>=0 |
size_x[%]>=0,size_y[%]>=0,_size_z[%]>=0 |
[kernel],_boundary_conditions,_is_real={ 0:Binary-mode | 1:Real-mode }
فرسایش
تصاویر
انتخابشده
با یک عنصر
ساختاری
مستطیلی یا
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_z=1'، 'boundary_conditions=1' و
'is_real=0'.مثال:
[#1] image.jpg +erode 10
erode_circ:
_size[%]>=0,_boundary_conditions,_is_real={ 0:No | 1:Yes }
اعمال سایش
(erosion) دایرهای
روی
تصویرهای
انتخابشده
با اندازهٔ
مشخص.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +erode_circ 7
erode_oct:
_size[%]>=0,_boundary_conditions,_is_real={ 0:No | 1:Yes }
اعمال سایش
هشتضلعی
روی
تصویرهای
انتخابشده
با اندازهٔ
مشخص.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +erode_oct 7
erode_threshold:
size_x>=1,size_y>=1,size_z>=1,_threshold>=0,_boundary_conditions
سایش
تصویرهای
انتخابشده
در فضای (X,Y,Z,I).
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_y=size_x'، 'size_z=1'،
'threshold=255' و 'boundary_conditions=1'.
fft (+):
_{ x | y | z }...{ x | y | z }
محاسبهٔ
تبدیل
فوریه
مستقیم
(بخشهای
حقیقی و
موهومی)
تصویرهای
انتخابشده،
اختیاراً
فقط در
راستای
محورهای
مشخصشده.
همچنین
ببینید: ifft.
مثال:
[#1] image.jpg luminance +fft append[-2,-1] c norm[-1] log[-1] shift[-1]
50%,50%,0,0,2
[#2] image.jpg w2:=int(w/2) h2:=int(h/2) fft shift $w2,$h2,0,0,2 ellipse
$w2,$h2,30,30,0,1,0 shift -$w2,-$h2,0,0,2 ifft remove[-1]
آموزش:
https://gmic.eu/oldtutorial/_fft
g (+):
میانبری
برای دستور
'gradient'.
gradient:
{ x | y | z | c }...{ x | y | z | c },_scheme,_boundary_conditions |
(no arg)
محاسبهٔ
مؤلفههای
گرادیان
(مشتقهای
مرتبه اول)
تصویرهای
انتخابشده،
در راستای
محورهای
مشخصشده.
(معادل
دستور
میانبر 'g').
'scheme'
میتواند {
-1:Backward | 0:Centered | 1:Forward | 2:Sobel | 3:Rotation-invariant
(پیشفرض) | 4:Deriche |
5:Vanvliet | 6:FB-Maxabs
} باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
(بدون
آرگومان)
محاسبهٔ
تمام
مؤلفههای
معنادار.
مقادیر
پیشفرض:
'scheme=0' و 'boundary_conditions=1'.
مثال:
[#1] image.jpg gradient
آموزش:
https://gmic.eu/oldtutorial/_gradient
gradient_norm:
_scheme,_boundary_conditions |
(no arg)
محاسبهٔ
نُرم
گرادیان
تصویرهای
انتخابشده.
'scheme'
میتواند {
-1:Backward | 0:Centered | 1:Forward | 2:Sobel | 3:Rotation-invariant
(پیشفرض) | 4:Deriche |
5:Vanvliet | 6:FB-Maxabs
} باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'scheme=0' و 'boundary_conditions=1'.
مثال:
[#1] image.jpg gradient_norm equalize
آموزش:
https://gmic.eu/oldtutorial/_gradient_norm
gradient_orientation:
_dimension={ 1 | 2 | 3 }
محاسبهٔ
جهت
گرادیان
N-بُعدی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'dimension=3'.
مثال:
[#1] image.jpg +gradient_orientation 2
guided (+):
[guide],radius[%]>=0,regularization[%]>=0 |
radius[%]>=0,regularization[%]>=0
مات کردن
تصویرهای
انتخابشده
از طریق
فیلتر
تصویر
هدایتشده
(guided image filtering).
اگر تصویر
راهنما (guide)
ارائه شود،
از آن برای
هدایت
فرایند
هموارسازی
استفاده
میشود.
اندازهٔ xyz
تصویر
راهنما
باید
دقیقاً با
تصویرهای
انتخابشده
یکسان باشد.
این دستور
الگوریتم
فیلترینگ
شرح
دادهشده
در منبع زیر
را
پیادهسازی
میکند:
He, Kaiming; Sun, Jian; Tang, Xiaoou, “Guided Image Filtering”,
IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.35, no.6,
pp.1397,1409, June 2013
مثال:
[#1] image.jpg +guided 5,400
haar:
scale>0
محاسبهٔ
تبدیل موجک
چندمقیاسی
مستقیم هار
(haar) برای
تصویرهای
انتخابشده.
همچنین
ببینید: ihaar.
آموزش:
https://gmic.eu/oldtutorial/_haar
heat_flow:
_nb_iter>=0,_dt,_keep_sequence={ 0:No | 1:Yes }
اعمال
تکرارهای
شارش گرما (heat
flow) روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'nb_iter=10'، 'dt=30' و
'keep_sequence=0'.
مثال:
[#1] image.jpg +heat_flow 20
hessian:
{ xx | xy | xz | yy | yz | zz }...{ xx | xy | xz | yy | yz | zz
},_boundary_conditions |
(no arg) :
محاسبهٔ
مؤلفههای
هسیان
(مشتقهای
مرتبه دوم)
تصویرهای
انتخابشده
در راستای
محورهای
مشخصشده.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
(بدون
آرگومان)
محاسبهٔ
تمام
مؤلفههای
معنادار.
مقدار
پیشفرض:
'boundary_conditions=1'.
مثال:
[#1] image.jpg hessian
idct:
_{ x | y | z }...{ x | y | z } |
(no arg)
محاسبهٔ
تبدیل
کسینوسی
گسسته
معکوس
تصویرهای
انتخابشده،
اختیاراً
فقط در
راستای
محورهای
مشخصشده.
تصویرهای
خروجی
همیشه
دارای
ابعاد زوج
هستند،
بنابراین
این دستور
ممکن است
اندازهٔ
تصویرهای
انتخابشده
را تغییر
دهد.
(تصویرهای dct
بهدستآمده
با دستور 'dct'
در هر صورت
دارای
ابعاد زوج
هستند).
مقادیر
پیشفرض:
(بدون
آرگومان)
همچنین
ببینید: dct.
آموزش:
https://gmic.eu/oldtutorial/_dct-and-idct
iee:
محاسبهٔ
مشتق مرتبه
دوم در جهت
عمود بر
گرادیان
برای
تصویر(ها).
مثال:
[#1] image.jpg iee
ifft (+):
_{ x | y | z }...{ x | y | z }
محاسبهٔ
تبدیل
فوریه
معکوس
(بخشهای
حقیقی و
موهومی)
تصویرهای
انتخابشده،
اختیاراً
فقط در
راستای
محورهای
مشخصشده.
همچنین
ببینید: fft.
آموزش:
https://gmic.eu/oldtutorial/_fft
ihaar:
scale>0
محاسبهٔ
تبدیل موجک
چندمقیاسی
معکوس هار (haar)
برای
تصویرهای
انتخابشده.
همچنین
ببینید: haar.
آموزش:
https://gmic.eu/oldtutorial/_haar
ilaplacian:
{ nb_iterations>0 | 0 },_[initial_estimate]
وارونسازی
تصویرهای
لاپلاسین
انتخابشده.
اگر 'nb_iterations'
دادهشده
برابر '0'
باشد،
وارونسازی
در فضای
فوریه
(تکتکرار)
انجام
میشود؛
در غیر این
صورت، با
اعمال 'nb_iterations'
تکرار از یک
شارش PDE
وارونسازی
لاپلاسین
صورت
میپذیرد.
توجه داشته
باشید که
وارونسازیهای
حاصل، تنها
تخمینی از
راهحلهای
ممکن/تقریبی
هستند.
مقادیر
پیشفرض:
'nb_iterations=0'، 'axes=(undefined)' و
'[initial_estimated]=(undefined)'.
مثال:
[#1] image.jpg +laplacian +ilaplacian[-1] 0
inn:
محاسبهٔ
مشتق مرتبه
دوم در جهت
گرادیان
برای
تصویر(ها).
مثال:
[#1] image.jpg inn
inpaint (+):
[mask] |
[mask],0,_fast_method |
[mask],_patch_size>=1,_lookup_size>=1,_lookup_factor>=0,_lookup_increment!=0,_blend_size>=0,0<=_blend_threshold<=1,_blend_decay>=0,_blend_scales>=1,
_is_blend_outer={ 0:No | 1:Yes }
ترمیم
درونقاب (Inpaint)
تصویرهای
انتخابشده
توسط ماسک
مشخصشده.
اگر
اندازهٔ
وصله مشخص
نشود (یا 0
باشد)،
ترمیم با یک
الگوریتم
سریع
میانگین یا
میانه
انجام
میشود.
در غیر این
صورت، از یک
روش
بازسازی
مبتنی بر
وصله (patch-based)
استفاده
میشود که
میتواند
بسیار
زمانبر
باشد.
'fast_method'
میتواند {
0:Low-connectivity average | 1:High-connectivity average |
2:Low-connectivity median | 3:High-connectivity median
} باشد.
مقادیر
پیشفرض:
'patch_size=0'، 'fast_method=1'،
'lookup_size=22'، 'lookup_factor=0.5'،
'lookup_increment=1'،
'blend_size=0'، 'blend_threshold=0'،
'blend_decay=0.05'، 'blend_scales=10' و
'is_blend_outer=1'.
مثال:
[#1] image.jpg 100%,100% ellipse 50%,50%,30,30,0,1,255 ellipse
20%,20%,30,10,0,1,255 +inpaint[-2] [-1] remove[-2]
[#2] image.jpg 100%,100% circle 30%,30%,30,1,255,0,255 circle
70%,70%,50,1,255,0,255 +inpaint[0] [1],5,15,0.5,1,9,0 remove[1]
inpaint_pde:
[mask],_nb_scales[%],_diffusion_type={ 0:Isotropic | 1:Delaunay-guided |
2:Edge-guided | 3:Mask-guided },_diffusion_iter>=0
ترمیم
تصویرهای
انتخابشده
توسط ماسک
مشخصشده
با استفاده
از یک
الگوریتم
چندمقیاسی
انتقال-نفوذ
(transport-diffusion).
آرگومان 'nb_scales'
تعداد
مقیاسهای
بهکاررفته
در طرح وضوح
چندمقیاسی
را تعیین
میکند.
* هنگامی که
شناسهٔ '%'
برای 'nb_scales'
استفاده
شود، تعداد
مقیاسهای
استفادهشده
نسبت به 'nb_scales_max =
ceil(log2(max(w,h,d)))' خواهد
بود.
* هنگامی که
'nb_scales<0' باشد،
کمینه
اندازه
تصویر
مواجهشده
در
پایینترین
مقیاس را
تعیین
میکند.
اگر 'diffusion_type==3'
باشد،
مقادیر
غیرصفر
ماسک (مانند
یک تابع
فاصله) برای
هدایت
فرایند
نفوذ
استفاده
میشوند.
مقادیر
پیشفرض:
'nb_scales=-9'، 'diffusion_type=1' و
'diffusion_iter=20'.
مثال:
[#1] image.jpg 100%,100% ellipse[-1] 30%,30%,40,30,0,1,255 +inpaint_pde[0]
[1]
inpaint_flow:
[mask],_nb_global_iter>=0,_nb_local_iter>=0,_dt>0,_alpha>=0,_sigma>=0
اعمال
تکرار شارش
ترمیم روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'nb_global_iter=10'، 'nb_local_iter=100'،
'dt=5'، 'alpha=1' و 'sigma=3'.
مثال:
[#1] image.jpg 100%,100% ellipse[-1] 30%,30%,40,30,0,1,255 inpaint_flow[0]
[1]
inpaint_holes:
maximal_area[%]>=0,_tolerance>=0,_is_high_connectivity={ 0:No | 1:Yes
}
ترمیم تمام
ناحیههای
متصل که
مساحتی
کمتر از
مقدار
مشخصشده
دارند.
مقادیر
پیشفرض:
'maximal_area=4'، 'tolerance=0' و
'is_high_connectivity=0'.
مثال:
[#1] image.jpg noise 5%,2 +inpaint_holes 8,40
inpaint_morpho:
[mask]ترمیم
تصاویر
انتخابشده
با ماسک
مشخصشده
با استفاده
از
عملگرهای
ریختشناسی.
مثال:
[#1] image.jpg 100%,100% ellipse[-1] 30%,30%,40,30,0,1,255 +inpaint_morpho[0]
[1]
inpaint_matchpatch:
[mask],_nb_scales={ 0:Auto | >0
},_patch_size>0,_nb_iterations_per_scale>0,_blend_size>=0,_allow_outer_blending={
0:No | 1:Yes },
_is_already_initialized={ 0:No | 1:Yes }
ترمیم
تصاویر
انتخابشده
با ماسک
دودویی
(باینری)
مشخصشده،
با استفاده
از
الگوریتم
وصلهتطبیقی
چندمقیاسی
(multi-scale matchpatch).
مقادیر
پیشفرض:
'nb_scales=0'، 'patch_size=9'،
'nb_iterations_per_scale=10'، 'blend_size=5'،
'allow_outer_blending=1' و
'is_already_initialized=0'.
مثال:
[#1] image.jpg 100%,100% ellipse[-1] 30%,30%,40,30,0,1,255
+inpaint_matchpatch[0] [1]
kuwahara:
size>0
اعمال
فیلتر Kuwahara با
اندازه
مشخصشده
بر روی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg kuwahara 9
laplacian:
محاسبه
لاپلاسین
تصاویر
انتخابشده.
مثال:
[#1] image.jpg laplacian
lic:
_amplitude>0,_channels>0
رندر
بازنمایی LIC
(انتگرالگیری
خطی پیچش)
برای
میدانهای
برداری
انتخابشده.
مقادیر
پیشفرض:
'amplitude=30' و 'channels=1'.
مثال:
[#1] 400,400,1,2,'[x,y]-[w,h]/2' +lic 200,3 quiver[-2] [-2],10,1,1,1,255
map_tones:
_threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0
اعمال یک
عملگر
نگاشت
تنالیته (tone mapping)
بر روی
تصاویر
انتخابشده،
بر پایه
معادله
پواسون.
مقادیر
پیشفرض:
'threshold=0.1'، 'gamma=0.8'،
'smoothness=0.5' و 'nb_iter=30'.
مثال:
[#1] image.jpg +map_tones ,
map_tones_fast:
_radius[%]>=0,_power>=0
اعمال یک
عملگر سریع
نگاشت
تنالیته بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'radius=3%' و 'power=0.3'.
مثال:
[#1] image.jpg +map_tones_fast ,
meancurvature_flow:
_nb_iter>=0,_dt,_keep_sequence={ 0:No | 1:Yes }
اعمال
تکرارهای
جریان
انحنای
میانگین (mean curvature
flow) بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'nb_iter=10'، 'dt=30' و
'keep_sequence=0'.
مثال:
[#1] image.jpg +meancurvature_flow 20
median (+):
size>=0,_threshold>0
اعمال
فیلتر
میانه
(اختیاراً
دارای
مقدار
آستانه) بر
روی تصاویر
انتخابشده
با عنصر
ساختاری size x size.
مثال:
[#1] image.jpg +median 5
merge_alpha:
ادغام
مقیاسهای
جزئیات
آلفای
انتخابشده
در یک تصویر
واحد.
مقیاسهای
جزئیات
آلفا با
دستور split_alpha به
دست
آمدهاند.
nlmeans:
[guide],_patch_radius>0,_spatial_bandwidth>0,_tonal_bandwidth>0,_patch_measure_command
|
_patch_radius>0,_spatial_bandwidth>0,_tonal_bandwidth>0,_patch_measure_command
اعمال
نویززدایی
میانگینهای
غیرمحلی (non-local-means)
به روش
بوادس و
همکاران
(۲۰۰۵) بر روی
تصاویر
انتخابشده.
وصله، یک
تابع گاوسی
از 'std_patch_radius' است.
هسته
مکانی، یک
مستطیل با
شعاع 'spatial_bandwidth'
است.
هسته
تنالیته،
نمایی ('exp(-d^2/_tonal_bandwidth^2)')
است
با 'd' به
عنوان
فاصله
اقلیدسی
بین
وصلههای
تصویر.
مقادیر
پیشفرض:
'patch_radius=4'، 'spatial_bandwidth=4'،
'tonal_bandwidth=10' و
'patch_measure_command=-norm'.
مثال:
[#1] image.jpg +noise 10 nlmeans[-1] 4,4,{0.6*${-std_noise}}
nlmeans_core:
_reference_image,_scaling_map,_patch_radius>0,_spatial_bandwidth>0
اعمال
نویززدایی
میانگینهای
غیرمحلی با
استفاده از
یک تصویر
برای
وزندهی و
یک نگاشت
برای
مقیاسبندی
normalize_local:
_amplitude>=0,_radius>0,_n_smooth[%]>=0,_a_smooth[%]>=0,_is_cut={
0:No | 1:Yes },_min=0,_max=255
نرمالسازی
موضعی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=3'، 'radius=16'،
'n_smooth=4%'، 'a_smooth=2%'،
'is_cut=1'، 'min=0' و
'max=255'.
مثال:
[#1] image.jpg normalize_local 8,10
normalized_cross_correlation:
[mask]
محاسبه
همبستگی
متقابل
نرمالشده
(normalized cross-correlation)
تصاویر
انتخابشده
با ماسک
مشخصشده.
مثال:
[#1] image.jpg +shift -30,-20 +normalized_cross_correlation[0] [1]
opening:
size>=0 |
size_x>=0,size_y>=0,_size_z>=0 |
[kernel],_boundary_conditions,_is_real={ 0:Binary-mode | 1:Real-mode }
اعمال
بازگشایی
ریختشناسی
بر روی
تصاویر
انتخابشده.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'size_z=1'، 'boundary_conditions=1' و
'is_real=0'.
مثال:
[#1] image.jpg +opening 10
opening_circ:
_size>=0,_is_real={ 0:No | 1:Yes }
اعمال
بازگشایی
دایرهای
روی تصاویر
انتخابشده
با اندازه
مشخصشده.
مقادیر
پیشفرض:
'boundary_conditions=1' و 'is_real=0'.
مثال:
[#1] image.jpg +opening_circ 7
percentile:
[mask],0<=_min_percentile[%]<=100,0<=_max_percentile[%]<=100.
اعمال
فیلتر
میانگینگیری
صدک بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'min_percentile=0' و 'max_percentile=100'.
مثال:
[#1] image.jpg shape_circle 11,11 +percentile[0] [1],25,75
peronamalik_flow:
K_factor>0,_nb_iter>=0,_dt,_keep_sequence={ 0:No | 1:Yes }
اعمال
تکرارهای
جریان
پرونا-مالیک
(Perona-Malik) بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'K_factor=20'، 'nb_iter=5'، 'dt=5'
و 'keep_sequence=0'.
مثال:
[#1] image.jpg +heat_flow 20
phase_correlation:
[destination]
تخمین
بردار
انتقال بین
تصاویر
مبدا
انتخابشده
و مقصد
مشخصشده.
مثال:
[#1] image.jpg +shift -30,-20 +phase_correlation[0] [1] unroll[-1] y
pde_flow:
_nb_iter>=0,_dt,_velocity_command,_keep_sequence={ 0:No | 1:Yes }
اعمال
تکرارهای
یک جریان PDE
عمومی بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'nb_iter=10'، 'dt=30'،
'velocity_command=laplacian' و 'keep_sequence=0'.
مثال:
[#1] image.jpg +pde_flow 20
periodize_poisson:
دورهایسازی
تصاویر
انتخابشده
با استفاده
از یک
حلکننده
پواسون در
فضای
فوریه.
مثال:
[#1] image.jpg +periodize_poisson array 2,2,2
rbf:
dx,_x0,_x1,_phi(r),_is_affine_term={ 0:No | 1:Yes } |
dx,dy,_x0,_y0,_x1,_y1,_phi(r),_is_affine_term |
dx,dy,dz,x0,y0,z0,x1,y1,z1,phi(r)_is_affine_term
بازسازی
تصویر ۱
بعدی/۲ بعدی
یا ۳ بعدی از
مجموعههای
نقاط کلیدی
انتخابشده،
از طریق
درونیابی RBF.
یک مجموعه
از نقاط
کلیدی توسط
یک تصویر با
مقادیر
برداری
نمایش داده
میشود، که
در آن هر
پیکسل
نشاندهنده
یک نقطه
کلیدی
منفرد است.
مؤلفههای
برداری یک
نقطه کلیدی
معنای زیر
را دارند:
- برای
بازسازی ۱
بعدی: [ x_k, f1(x_k),...fN(x_k) ].
- برای
بازسازی ۲
بعدی: [ x_k,y_k, f1(x_k,y_k),...,fN(x_k,y_k) ].
- برای
بازسازی ۳
بعدی: [ x_k,y_k,z_k,
f1(x_k,y_k,z_k),...,fN(x_k,y_k,z_k) ].
مقادیر 'x_k'،
'y_k' و 'z_k'
مختصات
مکانی نقطه
کلیدی 'k'
هستند.
مقادیر 'f1(),..,fN()'
تعداد 'N'
مؤلفه از
مقدار
برداری
نقطه کلیدی
'k' هستند.
این دستور
تصویری با
اندازه
مشخصشده
'dx'x'dy'x'dz' و با 'N'
کانال
بازسازی
میکند.
اگر 'affine_term==1'
باشد، تابع
بازسازی
شامل یک
عبارت آفین
است.
مقادیر
پیشفرض:
'x0=y0=z0=0'، 'x1=dx-1'،
'y1=dy-1'، 'z1=dz-1'، 'phi(r)=r*log(1+r)'
و 'affine_term=0'.
مثال:
[#1] sample colorful,400 100%,100% noise_poissondisk. 10 1,{is},1,5 eval[-2]
"begin(p=0);i?(I[#-1,p++]=[x,y,I(#0)])" to_rgb[1] mul[0,1]
dilate_circ[0] 5 +rbf[-1] {0,[w,h]} c[-1] 0,255
[#2] 32,1,1,5,u([400,400,255,255,255]) rbf 400,400 c 0,255
red_eye:
0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1
کاهش اثر
قرمزی چشم
در تصاویر
انتخابشده.
مقادیر
پیشفرض:
'threshold=75'، 'smoothness=3.5' و
'attenuation=0.1'.
مثال:
[#1] image.jpg +red_eye ,
remove_hotpixels:
_mask_size>0, _threshold[%]>0
حذف
پیکسلهای
داغ در
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'mask_size=3' و 'threshold=10%'.
مثال:
[#1] image.jpg noise 10,2 +remove_hotpixels ,
remove_pixels:
number_of_pixels[%]>=0
حذف تعداد
مشخصی از
پیکسلها
(یعنی تنظیم
آنها روی ۰)
از مجموعه
پیکسلهای
غیرصفر در
تصاویر
انتخابشده.
مثال:
[#1] image.jpg +remove_pixels 50%
rolling_guidance:
std_deviation_s[%]>=0,std_deviation_r[%]>=0,_precision>=0
اعمال
فیلتر
هدایت
غلتان (rolling guidance) بر
روی تصاویر
انتخابشده.
فیلتر
هدایت
غلتان یک
فیلتر سریع
انتزاع
تصویر است
که شرح آن در
مقاله زیر
آمده است:
"Rolling Guidance Filter", Qi Zhang Xiaoyong, Shen Li, Xu Jiaya
Jia, ECCV'2014.مقادیر
پیشفرض:
'std_deviation_s=4'، 'std_deviation_r=10' و
'precision=0.5'.
مثال:
[#1] image.jpg +rolling_guidance , +-
sharpen:
amplitude>=0 |
amplitude>=0,edge>=0,_alpha[%],_sigma[%]
واضحسازی
تصاویر
انتخابشده
با استفاده
از روشهای
انتشار
معکوس یا
فیلترهای
شوک (shock filters).
برای
فعالسازی
روش shock-filter،
مقدار 'edge'
باید مشخص
شود.
مقادیر
پیشفرض:
'edge=0'، 'alpha=0' و 'sigma=0'.
مثال:
[#1] image.jpg sharpen 300
[#2] image.jpg blur 5 sharpen 300,1
sharpen_alpha:
_amplitude[%]>=0,_nb_scales>0,0<=_anisotropy<=1,0<=_minimize_alpha<=1
واضحسازی
تصاویر
انتخابشده
با استفاده
از
الگوریتم
چندمقیاسی
و تقویت
آلفا (alpha boosting).
مقادیر
پیشفرض:
'amplitude=1'، 'nb_scales=5'،
'anisotropy=0' و 'minimize_alpha=1'.
smooth (+):
amplitude[%]>=0,_sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={
0:No | 1:Yes } |
nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 |
[tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={
0:No | 1:Yes } |
[tensor_field],_nb_iters>=0,_dt>0,0
هموارسازی
ناهمسانگرد
تصاویر
انتخابشده
با استفاده
از PDEهای
انتشار، با
میدان
مشخصشده
از
تانسورهای
انتشار.
مقدار 'interpolation'
میتواند {
0:Nearest | 1:Linear | 2:Runge-kutta }
باشد.
مقادیر
پیشفرض:
'sharpness=0.7'، 'anisotropy=0.3'،
'alpha=0.6'، 'sigma=1.1'،
'dl=0.8'، 'da=30'،
'precision=2'، 'interpolation=0' و
'fast_approx=1'.
مثال:
[#1] image.jpg repeat 3 smooth 40,0,1,1,2 done
[#2] image.jpg 100%,100%,1,2 rand[-1] -100,100 repeat 2 smooth[-1]
100,0.2,1,4,4 done warp[0] [-1],1,1,1
آموزش:
https://gmic.eu/oldtutorial/_smooth
split_freq:
smoothness[%]>0
تفکیک
تصاویر
انتخابشده
به بخشهای
با بسامد
پایین و
بالا.
مثال:
[#1] image.jpg split_freq 2%
solve_poisson:
"laplacian_command",_nb_iterations>=0,_time_step>0,_nb_scales>=0
حل معادله
پواسون
بهگونهای
که اعمال
'laplacian[n]' به
نتیجه 'laplacian_command[n]'
نزدیک باشد.
حل معادله
با استفاده
از
الگوریتم
گرادیان
کاهشی
چندمقیاسی
انجام
میشود.
اگر 'nb_scales=0'
باشد،
تعداد
مقیاسها
بهصورت
خودکار
تعیین
میشود.
مقادیر
پیشفرض:
'nb_iterations=60'، 'dt=5' و
'nb_scales=0'.
مثال:
[#1] image.jpg command "foo : gradient x" +solve_poisson foo
+foo[0] +laplacian[1]
split_alpha:
_nb_scales[%]={ 0:Auto | -S<0 | N>0 },_subsample={ 0:No | 1:Yes
},0<=_anisotropy<=1,0<=_minimize_alpha<=1
تفکیک
تصاویر
انتخابشده
به
مقیاسهای
جزئیات
آلفا.
اگر 'nb_scales==-S'
باشد،
پایینترین
مقیاس
اندازهای
دستکم
برابر با 'SxS'
خواهد داشت.
پارامتر 'anisotropy'
تنها زمانی
در نظر
گرفته
میشود که
'subsample=0' باشد.
بازسازی
تصویر با
دستور merge_alpha
انجام
میشود.
مقادیر
پیشفرض:
'nb_scales=0'، 'subsample=0'،
'anisotropy=0' و 'minimize_alpha=1'.
split_details:
_nb_scales[%]={ 0:Auto | -S<0 | N>0
},_base_scale[%]>=0,_detail_scale[%]>=0
تفکیک
تصاویر
انتخابشده
به 'nb_scales' مقیاس
جزئیات.
اگر 'base_scale' = 'detail_scale' = 0
باشد،
تجزیه
تصویر با
موجکهای 'a
trous' انجام
میپذیرد.
در غیر این
صورت، از
هرمهای
لاپلاسی با
انحراف
معیارهای
خطی
استفاده
میکند.
مقادیر
پیشفرض:
'nb_scales=0'، 'base_scale=0' و
'detail_scale=0'.
مثال:
[#1] image.jpg split_details ,
structuretensors:
_scheme={ 0:Centered | 1:Forward/backward }
محاسبه
میدان
تانسور
ساختار
تصاویر
انتخابشده.
مقدار
پیشفرض:
'scheme=0'.
مثال:
[#1] image.jpg structuretensors abs pow 0.2
آموزش:
https://gmic.eu/oldtutorial/_structuretensors
solidify:
_smoothness[%]>=0,_diffusion_type={ 0:Isotropic | 1:Delaunay-guided |
2:Edge-oriented },_diffusion_iter>=0
توپُر کردن
تصاویر
شفاف
انتخابشده.
مقادیر
پیشفرض:
'smoothness=75%'، 'diffusion_type=1' و
'diffusion_iter=20'.
مثال:
[#1] image.jpg 100%,100% circle[-1] 50%,50%,25%,1,255 append c +solidify ,
display_rgba
syntexturize:
_width[%]>0,_height[%]>0
بازترکیب
نسخههای
'width'x'height' از
ریزبافتهای
انتخابشده
از طریق
تصادفیسازی
فاز.
الگوریتم
سنتز بافت،
پیادهسازی
مستقیمی از
روش شرح
دادهشده
در منبع زیر
است:
http://www.ipol.im/pub/art/2011/ggm_rpn.
مقادیر
پیشفرض:
'width=height=100%'.
مثال:
[#1] image.jpg crop 2,282,50,328 +syntexturize 320,320
syntexturize_matchpatch:
_width[%]>0,_height[%]>0,_nb_scales>=0,_patch_size>0,_blending_size>=0,_precision>=0
بازترکیب
نسخههای
'width'x'height' از
ریزبافتهای
انتخابشده
با استفاده
از
الگوریتم
تطبیق وصله
(patch-matching).
اگر 'nbscales==0'
باشد،
تعداد
مقیاسهای
استفادهشده
از روی
اندازه
تصویر
برآورد
میشود.
مقادیر
پیشفرض:
'width=height=100%'، 'nb_scales=0'،
'patch_size=7'، 'blending_size=5' و
'precision=1'.
مثال:
[#1] image.jpg crop 25%,25%,75%,75% syntexturize_matchpatch 512,512
tv_flow:
_nb_iter>=0,_dt,_keep_sequence={ 0:No | 1:Yes }
اعمال
تکرارهایی
از جریان
تغییر کل (total variation
flow) روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'nb_iter=10'، 'dt=30' و
'keep_sequence=0'.
مثال:
[#1] image.jpg +tv_flow 40
unsharp:
radius[%]>=0,_amount>=0,_threshold[%]>=0
اعمال ماسک
ماتکردن
معکوس (unsharp mask) بر
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amount=2' و 'threshold=0'.
مثال:
[#1] image.jpg blur 3 +unsharp 1.5,15 cut 0,255
unsharp_octave:
_nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0
اعمال
واضحسازی
اکتاوی بر
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'nb_scales=4'، 'radius=1'، 'amount=2'
و 'threshold=0'.
مثال:
[#1] image.jpg blur 3 +unsharp_octave 4,5,15 cut 0,255
vanvliet (+):
std_deviation[%]>=0,order={ 0 | 1 | 2 | 3 },axis={ x | y | z | c
},_boundary_conditions
اعمال
فیلتر
بازگشتی Vanvliet
بر تصاویر
انتخابشده،
در راستای
محور
تعیینشده
و با
انحراف
معیار،
مرتبه و
شرایط مرزی
مشخصشده.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'boundary_conditions=1'.
مثال:
[#1] image.jpg +vanvliet 3,1,x
[#2] image.jpg +vanvliet 30,0,x vanvliet[-2] 30,0,y add
voronoi:
محاسبه
دیاگرام
گسسته
ورونوی (Voronoi)
برای
پیکسلهای
غیرصفر در
تصاویر
انتخابشده.
مثال:
[#1] 400,400,1,3 eval "repeat(50,I(v([w,w]-1)) = v([255,255,255]))"
+voronoi +gradient_norm. eq. 0 *[-2,-1]
watermark_fourier:
text,_size>0
افزودن
واترمارک
متنی در
حوزه بسامد
تصاویر
انتخابشده.
مقدار
پیشفرض:
'size=33'.
مثال:
[#1] image.jpg +watermark_fourier "Watermarked!" +display_fft
remove[-3,-1] normalize 0,255 append[-4,-2] y append[-2,-1] y
watershed (+):
[priority_image],_is_high_connectivity={ 0:No | 1:Yes }
محاسبه
تبدیل حوضه
آبریز (watershed transform)
تصاویر
انتخابشده.
مقدار
پیشفرض:
'is_high_connectivity=1'.
مثال:
[#1] 400,400 noise 0.2,2 eq 1 +distance 1 mul[-1] -1 label[-2] watershed[-2]
[-1] mod[-2] 256 map[-2] 0 reverse
11.9. استخراج
ویژگیها (Features
Extraction)
------------------------------------
area:
tolerance>=0,is_high_connectivity={ 0:No | 1:Yes }
محاسبه
مساحت
مؤلفههای
متصل در
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'is_high_connectivity=0'.
مثال:
[#1] image.jpg luminance stencil[-1] 1 +area 0
آموزش:
https://gmic.eu/oldtutorial/_area
area_fg:
tolerance>=0,is_high_connectivity={ 0:No | 1:Yes }
محاسبه
مساحت
مؤلفههای
متصل برای
مقادیر
غیرصفر در
تصاویر
انتخابشده.
مشابه 'area'
است با این
تفاوت که
پیکسلهای
با مقدار ۰
در نظر
گرفته
نمیشوند.
مقادیر
پیشفرض:
'is_high_connectivity=0'.
مثال:
[#1] image.jpg luminance stencil[-1] 1 +area_fg 0
at_curve:
x0[%],y0[%],z0[%],...,xN[%],yn[%],zn[%]
بازیابی
پیکسلهایی
از تصاویر
انتخابشده
که متعلق به
منحنی
اسپلاین
مکعبی
مشخصشدهای
هستند که از
نقاط
تعیینشده
میگذرد.
مثال:
[#1] image.jpg +at_curve 0,0,0,80%,50%,0,100%,100%,0
at_quadrangle:
x0[%],y0[%],x1[%],y1[%],x2[%],y2[%],x3[%],y3[%],_interpolation,_boundary_conditions
|
x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],x2[%],y2[%],z2[%],x3[%],y3[%],z3[%],_interpolation,_boundary_conditions
بازیابی
پیکسلهایی
از تصاویر
انتخابشده
که متعلق به
چهارضلعی
دوبعدی یا
سهبعدی
تعیینشده
هستند.
مقدار 'interpolation'
میتواند {
0:Nearest-neighbor | 1:Linear | 2:Cubic }
باشد.
مقدار 'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مثال:
[#1] image.jpg params=5%,5%,95%,5%,60%,95%,40%,95% +at_quadrangle $params
polygon.. 4,$params,0.5,255
barycenter:
محاسبه
بردار مرکز
ثقل (barycenter)
مقادیر
پیکسلها.مثال:
[#1] 256,256 ellipse 50%,50%,20%,20%,0,1,1 deform 20 +barycenter +ellipse[-2]
{@0,1},5,5,0,10
betti:
محاسبه
اعداد بتی B0،
B1 و B2 از اشکال
باینری
سهبعدی
انتخابشده.
مقادیر B0، B1 و B2
در وضعیت (status)
بازگردانده
میشوند.
هنگامی که
چندین
تصویر
انتخاب
شوند، B0,B1,B2 هر
تصویر در
وضعیت به
یکدیگر
الحاق
میشوند.
(برای
جزئیات
بیشتر
درباره
اعداد بتی
به 'https://en.wikipedia.org/wiki/Betti_number'
مراجعه
کنید).
canny:
_sigma[%]>=0,_low_threshold>=0,_high_threshold>=0
مکانیابی
لبههای
تصویر با
استفاده از
آشکارساز
لبه کنی (Canny).
مقادیر
پیشفرض:
'sigma=1'، 'low_threshold=0.05'،
'high_threshold=0.15'.
مثال:
[#1] image.jpg canny 1
delaunay:
_output_type={ 0:Image | 1:Coordinates/triangles }
تولید
مثلثبندی
دلونی (Delaunay)
گسسته
دوبعدی از
پیکسلهای
غیرصفر در
تصاویر
انتخابشده.
تصاویر
ورودی باید
اسکالر
باشند.
هر پیکسل از
تصویر
خروجی یک
سهتایی (a,b,c)
است، به این
معنی که
پیکسل
متعلق به
مثلث دلونی
'ABC' است که در
آن 'a'، 'b' و 'c'
برچسبهای
پیکسلهای
'A'، 'B' و 'C'
هستند.
مثال:
[#1] 400,400 rand 32,255 100%,100% noise. 0.4,2 eq. 1 mul +delaunay
[#2] image.jpg 100%,100% noise. 2,2 eq. 1 delaunay. +blend shapeaverage0
detect_skin:
0<=tolerance<=1,_skin_x,_skin_y,_skin_radius>=0
تشخیص پوست
در تصاویر
رنگی
انتخابشده
و ایجاد یک
نگاشت
احتمال
عضویت پوست
در خروجی.
تشخیص با
استفاده از
دادههای
رنگمندی
(chromaticity)
مولفههای
CbCr
پیکسلهای
پوست انجام
میشود.
اگر
آرگومانهای
'skin_x'، 'skin_y' و 'skin_radius'
ارائه
شوند،
پیکسلهای
پوست
از
پیکسلهای
نمونه درون
دایره
قرارگرفته
در ('skin_x','skin_y') با
شعاع 'skin_radius'
یاد گرفته
میشوند.
مقدار
پیشفرض:
'tolerance=0.5' و 'skin_x=skin_y=radius=-1'.
displacement (+):
[reference],_smoothness,_precision>=0,_nb_scales>=0,_iteration_max>=0,mode={
0:Backward | 1:Forward },_[guide]
تخمین
میدان
جابهجایی
از تصویر
مرجع
مشخصشده
(مبدأ) به
تصاویر
انتخابشده
(مقاصد).
اگر 'smoothness>=0'
باشد، نوع
منظمسازی
بر روی
تیخونوف (Tikhonov) و
در غیر این
صورت بر روی
TV (تغییرات
کل) تنظیم
میشود.
اگر 'nbscales==0'
باشد،
تعداد
مقیاسهای
استفادهشده
از روی
اندازه
تصویر
تخمین زده
میشود.
مقادیر
پیشفرض:
'smoothness=0.1'، 'precision=7'،
'nb_scales=0'، 'iteration_max=1000'،
'mode=0'، و
'[guide]=(unused)'.
مثال:
[#1] image.jpg +rotate 3,1,0,50%,50% +displacement[-1] [-2] quiver[-1]
[-1],15,1,1,1,{1.5*iM}
distance (+):
isovalue[%],_metric |
isovalue[%],[metric],_method
محاسبه
تابع فاصله
بدون علامت
تا مقدار
همارزش (isovalue)
مشخصشده،
در صورت
تمایل بر
اساس یک
سنجه
سفارشی.
'metric'
میتواند {
0:Chebyshev | 1:Manhattan | 2:Euclidean | 3:Squared-euclidean }
باشد.
'method'
میتواند {
0:Fast-marching | 1:Low-connectivity dijkstra | 2:High-connectivity dijkstra
| 3:1+Return path | 4:2+Return path }
باشد.
مقدار
پیشفرض:
'metric=2' و 'method=0'.
مثال:
[#1] image.jpg threshold 20% distance 0 pow 0.3
[#2] 400,400 set 1,50%,50% +distance[0] 1,2 +distance[0] 1,1 distance[0] 1,0
mod 32 threshold 16 append c
آموزش:
https://gmic.eu/oldtutorial/_distance
edgels:
x0,y0,_n0,_is_high_connectivity={ 0:No | 1:Yes }
استخراج یک
یا چند
فهرست از
edgelها (و بردار
نرمال
آنها) که یک
سایهنمای
دوبعدی
دودویی را
تعریف
میکند.
در صورت
تعیین شدن
(یعنی '!=-1')،
آرگومانهای
'x0,y0,n0' مختصات edgel
آغازین
هستند که
باید روی
لبهای از
سایهنمای
دودویی
قرار داشته
باشد.
* اگر 'x0,y0' و 'n0'
مشخص شوند،
تنها یک
فهرست از
edgelها
بازگردانده
میشود.
* اگر تنها 'x0,y0'
مشخص شوند
(به این معنی
که 'n0=-1' است)،
حداکثر تا ۴
فهرست از
edgelها که همگی
از همان
نقطه (x0,y0) شروع
میشوند
بازگردانده
خواهند شد.
* اگر هیچ
آرگومانی
مشخص نشود
(به این معنی
که 'x0=y0=n0=-1' است)،
تمامی
فهرستهای
ممکن از edgelها
بازگردانده
میشوند.
یک فهرست از
edgelها
بهصورت
تصویری با ۳
کانال '[x,y,n]'
بازگردانده
میشود که
در آن 'x' و 'y'
مختصات
دوبعدی
پیکسل edgel،
و 'n'
جهتگیری
بردار
نرمال
کانونیکال
متناظر با
آن است (که
میتواند {
0:[1,0] | 1:[0,1] | 2:[-1,0] | 3:[0,-1] }
باشد).
مقادیر
پیشفرض:
'x0=y0=n0=-1' و 'is_high_connectivity=1'.
edges:
_threshold[%]>=0
تخمین خطوط
پیرامونی
(کانتورها)
در تصاویر
انتخابشده.
مقدار
پیشفرض:
'edges=15%'
مثال:
[#1] image.jpg +edges 15%
fftpolar:
محاسبه
تبدیل
فوریه
تصاویر
انتخابشده،
بهصورت
تصاویر
اندازه/فاز
مرکزشده.
مثال:
[#1] image.jpg fftpolar ellipse 50%,50%,10,10,0,1,0 ifftpolar
histogram (+):
nb_levels[%]>0,_min_value[%],_max_value[%]
محاسبه
هیستوگرام
تصاویر
انتخابشده.
اگر محدوده
مقادیر
تنظیم شود،
هیستوگرام
تنها برای
پیکسلهای
درون
محدوده
مقادیر
مشخصشده
برآورد
میشود. در
صورت تنظیم
'min_value'،
آرگومان 'max_value'
نیز باید
مشخص شود.
مقادیر
پیشفرض:
'min_value=0%' و 'max_value=100%'.
مثال:
[#1] image.jpg +histogram 64 display_graph[-1] 400,300,3
histogram_masked:
[mask],nb_levels[%]>0,_min_value[%],_max_value[%]
محاسبه
هیستوگرام
ماسکشده
برای
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'min_value=0%' و 'max_value=100%'.
histogram_nd:
nb_levels[%]>0,_value0[%],_value1[%]
محاسبه
هیستوگرام
یکبعدی،
دوبعدی یا
سهبعدی
تصاویر
چندکاناله
انتخابشده
(دارای ۱، ۲
یا ۳ کانال).
اگر محدوده
مقادیر
تنظیم شود،
هیستوگرام
تنها برای
پیکسلهای
درون
محدوده
مقادیر
مشخصشده
برآورد
میشود.
مقادیر
پیشفرض:
'value0=0%' و 'value1=100%'.
مثال:
[#1] image.jpg channels 0,1 +histogram_nd 256
histogram_cumul:
_nb_levels>0,_is_normalized={ 0:No | 1:Yes },_val0[%],_val1[%]
محاسبه
هیستوگرام
تجمعی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'nb_levels=256'، 'is_normalized=0'،
'val0=0%' و 'val1=100%'.
مثال:
[#1] image.jpg +histogram_cumul 256 histogram[0] 256 display_graph
400,300,3
histogram_pointwise:
nb_levels[%]>0,_value0[%],_value1[%]
محاسبه
هیستوگرام
هر نقطه با
مقدار
برداری در
تصاویر
انتخابشده.
اگر محدوده
مقادیر
تنظیم شود،
هیستوگرام
تنها برای
مقادیر
موجود در
محدوده
مقادیر
مشخصشده
برآورد
میشود.
مقادیر
پیشفرض:
'value0=0%' و 'value1=100%'.
hough:
_width>0,_height>0,gradient_norm_voting={ 0:No | 1:Yes }
محاسبه
تبدیل هاف
(theta,rho) برای
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'width=512'، 'height=width' و
'gradient_norm_voting=1'.
مثال:
[#1] image.jpg +blur 1.5 hough[-1] 400,400 blur[-1] 0.5 add[-1] 1 log[-1]
huffman_tree:
تولید درخت
کدگذاری
هافمن از
دادههای
آماری تمام
تصاویر
انتخابشده.
درخت هافمن
بهصورت یک
تصویر 1xN که
در انتهای
فهرست
تصاویر درج
میشود
بازگردانده
شده و
نماینده 'N'
گره/برگ با
مقدار
برداری
درخت است که
بهصورت
'[ value,parent,child0,child1 ]'
کدگذاری
شدهاند.
آخرین سطر
از تصویر
بازگرداندهشده
متناظر با
ریشه درخت
است.
تصاویر
انتخابشده
باید تنها
شامل
مقادیر
صحیح مثبت
باشند.
بیشینه
مقدار
دادههای
ورودی را در
وضعیت (status)
بازمیگرداند.
همچنین
ببینید:
compress_huffman، decompress_huffman.
ifftpolar:
محاسبه
تبدیل
معکوس
فوریه
تصاویر
انتخابشده،
از روی
تصاویر
مرکزشده
اندازه/فاز.
img2patches:
patch_size>0,_overlap[%]>0,_boundary_conditions
تجزیه
تصاویر
دوبعدی
انتخابشده
به وصلهها
(احتمالاً
همپوشان) و
انباشتن
آنها در
امتداد
محور z.
'overlap' باید در
محدوده '[0,patch_size-1]'
باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'overlap=0' و 'boundary_conditions=0'.
همچنین
ببینید: patches2img.
مثال:
[#1] image.jpg img2patches 64
isophotes:
_nb_levels>0
رندر خطوط
همنور
(ایزوفوت)
تصاویر
انتخابشده
بر روی
پسزمینه
شفاف.
مقدار
پیشفرض:
'nb_levels=64'
مثال:
[#1] image.jpg blur 2 isophotes 6 dilate_circ 5 display_rgba
label (+):
_tolerance>=0,is_high_connectivity={ 0:No | 1:Yes },_is_L2_norm={ 0:No |
1:Yes }
برچسبگذاری
مؤلفههای
متصل در
تصاویر
انتخابشده.
اگر 'is_L2_norm=1'
باشد،
تلورانسها
در مقایسه
با نرم L2
سنجیده
میشوند،
در غیر این
صورت از نرم
L1 استفاده
میشود.
مقادیر
پیشفرض:
'tolerance=0'، 'is_high_connectivity=0' و
'is_L2_norm=1'.
مثال:
[#1] image.jpg luminance threshold 60% label normalize 0,255 map 0
[#2] 400,400 set 1,50%,50% distance 1 mod 16 threshold 8 label mod 255 map
2
آموزش:
https://gmic.eu/oldtutorial/_label
label_fg:
tolerance>=0,is_high_connectivity={ 0:No | 1:Yes },_is_L2_norm={ 0:No |
1:Yes }
برچسبگذاری
مؤلفههای
متصل برای
مقادیر
غیرصفر
(پیشزمینه)
در تصاویر
انتخابشده.
مشابه با
'label'، با این
تفاوت که
پیکسلهای
با مقدار ۰
برچسبگذاری
نمیشوند.
اگر 'is_L2_norm=1'
باشد،
تلورانسها
در مقایسه
با نرم L2
سنجیده
میشوند،
در غیر این
صورت نرم L1
به کار
میرود.
مقدار
پیشفرض:
'is_high_connectivity=0' و 'is_L2_norm=1'.
laar:
استخراج
بزرگترین
مستطیل
همراستا
با محور در
نواحی
غیرصفر
تصاویر
انتخابشده.
مختصات
مستطیل در
وضعیت
بهصورت
دنبالهای
از اعداد x0,y0,x1,y1
بازگردانده
میشود.
مثال:
[#1] shape_cupid 256 coords=${-laar} normalize 0,255 to_rgb rectangle
$coords,0.5,0,128,0
max_patch:
_patch_size>=1
بازگرداندن
مکانهای
مقادیر
بیشینه در
همسایگی
محلی
وصلهمحور
با اندازه
دادهشده
برای
تصاویر
انتخابشده.
مقدار
پیشفرض:
'patch_size=16'.
مثال:
[#1] image.jpg norm +max_patch 16
min_patch:
_patch_size>=1
بازگرداندن
مکانهای
مقادیر
کمینه در
همسایگی
محلی
وصلهمحور
با اندازه
دادهشده
برای
تصاویر
انتخابشده.
مقدار
پیشفرض:
'patch_size=16'.
مثال:
[#1] image.jpg norm +min_patch 16
minimal_path:
x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0,_is_high_connectivity={
0:No | 1:Yes }محاسبه
کمترین
مسیر (minimal path) بین
دو نقطه روی
نقشههای
پتانسیل
انتخابشده.
مقدار
پیشفرض:
'is_high_connectivity=0'.
مثال:
[#1] image.jpg +gradient_norm fill[-1] 1/(1+i) minimal_path[-1]
0,0,0,100%,100%,0 pointcloud[-1] 0 *[-1] 280 to_rgb[-1] ri[-1] [-2],0 or
mse:
[reference]
بازگرداندن
MSE (میانگین
مربعات خطا
یا Mean-Squared Error) بین
تصاویر
انتخابشده
و تصویر
مرجع
مشخصشده.
این دستور
تصاویر را
تغییر
نمیدهد.
مقداری یا
فهرستی از
مقادیر را
در وضعیت (status)
بازمیگرداند.
mse_matrix:
محاسبه
ماتریس MSE
(میانگین
مربعات خطا)
بین تصاویر
انتخابشده.
مثال:
[#1] image.jpg +noise 30 +noise[0] 35 +noise[0] 38 cut. 0,255 +mse_matrix
patches2img:
width>0,height>0,_overlap[%]>0,_overlap_std[%]
بازترکیب
تصاویر
دوبعدی (2D) از
بازنماییهای
وصلهای (patch)
انتخابشده
آنها.
'overlap' باید در
بازه '[0,patch_size-1]'
باشد که در
آن 'patch_size'
پهنا/بلندای
تصویر
انتخابشده
است.
'overlap_std' انحراف
معیار
وزنهای
گاوسی مورد
استفاده
برای
بازسازی
وصلههای
همپوشان
است.
اگر 'overlap_std' روی
'-1' تنظیم
شود،
بهجای
گاوسی از
وزنهای
یکنواخت (uniform)
استفاده
میشود.
مقادیر
پیشفرض:
'overlap=0' و 'overlap_std=-1'.
همچنین
ببینید: img2patches.
مثال:
[#1] image.jpg +img2patches 32,0,3 mirror[-1] xy patches2img[-1]
{0,[w,h]}
patches:
patch_width>0,patch_height>0,patch_depth>0,x0,y0,z0,_x1,_y1,_z1,...,_xN,_yN,_zN
استخراج N+1
وصله (patch) از
تصاویر
انتخابشده،
با مرکزیت
در
موقعیتهای
مشخصشده.
مثال:
[#1] image.jpg +patches 64,64,1,153,124,0,184,240,0,217,126,0,275,38,0
pca:
_output_mode,_target_dim[%]>0,_normalization_mode={ 0:None | 1:Center |
2:Center+scale }
انجام PCA
(تحلیل
مؤلفههای
اصلی یا Principal Component
Analysis) بر روی
تصاویر
انتخابشده،
که
بهعنوان
مجموعهای
از
نمونههای
برداری 'Xk'
در نظر
گرفته
میشوند.
بیتهای 'output_mode'
مشخص
میکند چه
دادههای
خروجی روی
پشته تصویر
بازگردانده
شوند:
* '1': تصویر
خروجی از
نمونههای
برداری 'Yk = Mt*(Xk -
avg)/std'، که تصویر
(projection)
نمونههای
'Xk' در یک
زیرفضای
برداری با
بُعد
(پایینتر)
'target_dim' هستند. 'avg'
بردار
میانگین
تمام 'Xk' است
(یا بردار
صفر اگر
'normalization_mode==0'). 'std'
بردار
انحراف
معیار تمام
'Xk' است (یا
بردار
همگییک
اگر 'normalization_mode<2'). 'Mt'
ترانهاده 'M'
است، یعنی
ماتریسِ 'target_dim'
بردار ویژه
نخست
(مرتبشده
بهصورت
ستونی) از
ماتریس
کوواریانس
'Xk'.
* '2': بردار
خروجی 'avg':
میانگین 'Xk'.
* '4': بردار
خروجی 'std':
انحراف
معیارهای
'Xk'.
* '8': ماتریس
خروجی 'M':
ماتریس
تصویر (عمود
برهم / orthonormal).
دانستن 'avg'،
'std' و 'M' این
امکان را
فراهم
میسازد که
با محاسبه 'Xk = avg
+ std*M*Yk' برای هر
پیکسل
تصویر،
بتوان
بهصورت
(تقریبی) 'Yk'
را در فضای
برداری
اولیه
بازتصویر
(retro-project) کرد.
مقادیر
پیشفرض:
'output_mode=15'، 'target_dim=100%' و
'normalization_mode=1'.
مثال:
[#1] shape_dragonfly 400 mul 128 0 eval.. "i?da_push([x,y])"
da_freeze. pca. 11,2 eval "C = I[#-2,0]; M = transpose(crop(#-1),2);
repeat(2,k,
polygon(#0,-2,C-1000*M[2*k,2],C+1000*M[2*k,2],1,0xF0F0F0F0,180));
ellipse(#0,C,5,5,0,1,255)" k[0]
matchpatch (+):
[patch_image],patch_width>=1,_patch_height>=1,_patch_depth>=1,_nb_iterations>=0,_nb_randoms>=0,_occurence_penalization,_output_score={
0:No | 1:Yes
},_[guide]
تخمین نقشه
تطابق (correspondence map)
بین تصاویر
انتخابشده
و تصویر
وصله
مشخصشده،
با استفاده
از یک
الگوریتم
تطبیق وصله
(patch-matching).
هر پیکسل از
نقشه تطابق
بازگرداندهشده،
موقعیت (p,q)
نزدیکترین
وصله را در
تصویر وصله
مشخصشده
ارائه
میدهد. اگر
'output_score=1' باشد،
کانال سوم
همچنین
امتیاز
تطابق
متناظر را
برای هر
وصله ارائه
میدهد.
اگر 'patch_penalization'
بزرگتر یا
مساوی ۰
باشد، SSD با
رخدادهای
وصله جریمه
میشود.
اگر 'patch_penalization'
کوچکتر از
۰ باشد،
هنگامی که
فاصله بین
وصلهها
کمتر از
'-patch_penalization' باشد، SSD
با مقدار
بینهایت
جریمه
میشود (inf-penalized).
مقادیر
پیشفرض:
'patch_height=patch_width'، 'patch_depth=1'،
'nb_iterations=5'، 'nb_randoms=5'،
'occurence_penalization=0'، 'output_score=0' و
'guide=(undefined)'.
مثال:
[#1] image.jpg sample colorful +matchpatch[0] [1],3 +warp[-2] [-1],0
matchpatch_alt:
[patch_image],_patch_width>=1,_patch_height>=1,_patch_depth>=1,_nb_iterations>=0,_nb_randoms>=0,_occurrence_penalization>=0,_output_score={
0:No |
1:Yes },_[guide]
پیادهسازی
دستور matchpatch
بهعنوان
یک دستور
سفارشی
جایگزین
(کندتر).
مقادیر
پیشفرض:
'patch_height=patch_width'، 'patch_depth=1'،
'nb_iterations=5'، 'nb_randoms=5'،
'occurrence_penalization=0'، 'output_score=0' و
'guide=(undefined)'.
مثال:
[#1] image.jpg sample colorful +matchpatch_alt[0] [1],3 +warp[-2] [-1],0
plot2value:
بازیابی
مقادیر از
نمودارهای
دوبعدی (2D graph plots)
انتخابشده.
مثال:
[#1] 400,300,1,1,'y>300*abs(cos(x/10+2*u))' +plot2value +display_graph[-1]
400,300
pointcloud:
_type = { -X:-X-opacity | 0:Binary | 1:Cumulative | 2:Label | 3:Retrieve
coordinates },_width,_height>0,_depth>0
رندر کردن
مجموعهای
از مختصات
نقاط
بهصورت یک
ابر نقطه (point cloud)
در یک تصویر
باینری 1D/2D یا 3D
(یا انجام
معکوس آن،
یعنی
بازیابی
مختصات
نقاط
غیرصفر از
یک ابر نقطه
رندرشده).
مختصات
نقاط ورودی
میتواند
تصویری با
ابعاد NxMx1x1، Nx1x1xM
یا 1xNx1xM باشد،
که در آن 'N'
تعداد نقاط
و M مختصات
نقاط است.
اگر 'M'>3 باشد،
مؤلفههای
۳ تا M رنگ
(M-3)-بُعدی را
در هر نقطه
تعیین
میکنند.
پارامترهای
'width'، 'height' و 'depth'
مربوط به
اندازه
تصویر
نهایی
هستند:
- اگر روی ۰
تنظیم شود،
اندازه در
امتداد
محور
مشخصشده
بهطور
خودکار
تعیین
میشود.
- اگر روی N>0
تنظیم شود،
اندازه در
امتداد
محور
مشخصشده
برابر با N
است.
- اگر روی N<0
تنظیم شود،
اندازه در
امتداد
محور
مشخصشده
حداکثر
برابر با N
است.
نقاطی با
مختصاتی که
منفی یا
بزرگتر از
مقادیر
مشخصشده
('width'، 'height'، 'depth')
باشند
رسم
نمیشوند.
مقادیر
پیشفرض:
'type=0' و 'max_width=max_height=max_depth=0'.
مثال:
[#1] 3000,2 rand 0,400 +pointcloud 0 dilate[-1] 3
[#2] 3000,2 rand 0,400 {w} {w},3 rand[-1] 0,255 append y +pointcloud 0
dilate[-1] 3
psnr:
[reference],_max_value>0
بازگرداندن
PSNR (نسبت
بیشینه
سیگنال به
نویز یا Peak Signal-to-Noise
Ratio) بین
تصاویر
انتخابشده
و تصویر
مرجع
مشخصشده.
این دستور
تصاویر را
تغییر
نمیدهد.
مقداری یا
فهرستی از
مقادیر را
در وضعیت (status)
بازمیگرداند.
مقدار
پیشفرض:
'max_value=255'.
psnr_matrix:
_max_value>0
محاسبه
ماتریس PSNR
(نسبت
بیشینه
سیگنال به
نویز) بین
تصاویر
انتخابشده.
مقدار
پیشفرض:
'max_value=255'.
مثال:
[#1] image.jpg +noise 30 +noise[0] 35 +noise[0] 38 cut. 0,255
+psnr_matrix
segment_watershed:
_threshold>=0
اعمال
بخشبندی
حوضه آبخیز
(watershed segmentation) روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'threshold=2'.
مثال:
[#1] image.jpg segment_watershed 2
shape2bump:
_resolution>=0,0<=_weight_std_max_avg<=1,_dilation,_smoothness>=0
تخمین نقشه
برجستگی (bumpmap)
از شکل
باینری در
تصاویر
انتخابشده.
مقدار
پیشفرض:
'resolution=256'، 'weight_std_max=0.75'،
'dilation=0' و 'smoothness=100'.
skeleton:
_boundary_conditions={ 0:Dirichlet | 1:Neumann }
محاسبه
اسکلت (skeleton)
اشکال
باینری با
استفاده از
تبدیل
فاصله و
باریکسازی
مقید (constrained thinning).
مقدار
پیشفرض:
'boundary_conditions=1'.
مثال:
[#1] shape_cupid 320 +skeleton 0
slic:
size>0,_regularity>=0,_nb_iterations>0
بخشبندی
تصاویر
دوبعدی (2D)
انتخابشده
با
سوپرپیکسلها،
با استفاده
از
الگوریتم SLIC
(خوشهبندی
تکراری خطی
ساده یا Simple Linear Iterative
Clustering).
تصاویر
اسکالر از
پیکسلهای
برچسبگذاریشده
بهصورت
صعودی
بازگردانده
میشوند.
مقاله مرجع:
Achanta, R., Shaji, A., Smith, K., Lucchi, A., Fua, P., & Susstrunk, S.
(2010). SLIC Superpixels (No. EPFL-REPORT-149300).
مقادیر
پیشفرض:
'size=16'، 'regularity=10' و
'nb_iterations=10'.
مثال:
[#1] image.jpg +srgb2lab slic[-1] 16 +blend shapeaverage f[-2]
"j(1,0)==i && j(0,1)==i" *[-1] [-2]
ssd_patch:
[patch],_use_fourier={ 0:No | 1:Yes },_boundary_conditions
محاسبه
میدانهای SSD
بین تصاویر
انتخابشده
و وصله (patch)
مشخصشده.
آرگومان
'boundary_conditions' تنها
زمانی
معتبر است
که 'use_fourier=0' باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'use_fourier=0' و 'boundary_conditions=0'.
مثال:
[#1] image.jpg +crop 20%,20%,35%,35% +ssd_patch[0] [1],0,0
ssim:
[reference],_patch_size>0,_max_value>0
محاسبه
معیار شاخص
شباهت
ساختاری (SSIM
یا Structural Similarity Index Measure)
بین تصاویر
انتخابشده
و تصویر
مرجع
مشخصشده.
این دستور
تصاویر را
تغییر
نمیدهد،
بلکه صرفاً
مقداری یا
فهرستی از
مقادیر را
در وضعیت (status)
بازمیگرداند.
هنگامی که
'downsampling_factor' با یک '%'
پایانی
مشخص شود،
مقدار آن
برابر با
'1+(patch_size-1)*spatial_factor%' است.
معیار SSIM در
مقاله زیر
معرفی شده
است:
Wang, Zhou, et al., "Image quality assessment: from error visibility to
structural similarity.",
in IEEE transactions on image processing 13.4 (2004): 600-612.
پیادهسازی
این دستور
یک ترجمه
مستقیم از
کد مرجع (در Matlab)
است که در
این نشانی
قرار دارد:
https://ece.uwaterloo.ca/~z70wang/research/ssim
مقادیر
پیشفرض:
'patch_size=11'، و 'max_value=255'.
ssim_matrix:
_patch_size>0,_max_value>0
محاسبه
ماتریس SSIM
(شاخص شباهت
ساختاری)
بین تصاویر
انتخابشده.
مقادیر
پیشفرض:
'patch_size=11'، و 'max_value=255'.
مثال:
[#1] image.jpg +noise 30 +noise[0] 35 +noise[0] 38 cut. 0,255
+ssim_matrix
thinning:
_boundary_conditions={ 0:Dirichlet | 1:Neumann }
محاسبه
اسکلت
اشکال
باینری با
استفاده از
نازکسازی
ریختشناسی
(morphological thinning)
(توجه داشته
باشید، این
فرایندی
تکرارپذیر
و نسبتاً
کند است)
مقدار
پیشفرض:
'boundary_conditions=1'.
مثال:
[#1] shape_cupid 320 +thinning
tones:
N>0
دریافت N
ماسک تُن (tones masks)
از تصاویر
انتخابشده.
مثال:
[#1] image.jpg +tones 3
topographic_map:
_nb_levels>0,_smoothness
رندر کردن
تصاویر
انتخابشده
بهصورت
نقشههای
مکاننگاری
(topographic maps).
مقادیر
پیشفرض:
'nb_levels=16' و 'smoothness=2'.
مثال:
[#1] image.jpg topographic_map 10
tsp:
_precision>=0تلاش
برای حل
مسئلهٔ «travelling
salesman»
(فروشندهٔ
دورهگرد)،
با استفاده
از ترکیبی
از
الگوریتمهای
جستجوی
حریصانه و 2-opt.
تصاویر
انتخابشده
باید دارای
ابعاد Nx1x1xC
باشند تا N
شهر را که
هرکدام
دارای
مختصات
C-بُعدی
هستند،
نشان دهند.
این دستور
دادههای
انتخابشده
را در
راستای
محور x
بازآرایی
میکند تا
توالی نقاط
به
کوتاهترین
مسیر تبدیل
شود.
مقادیر
پیشفرض:
'precision=256'.
مثال:
[#1] 256,1,1,2 rand 0,512 tsp , 512,512,1,3 repeat w#0 circle[-1]
{0,I[$>]},2,1,255,255,255 line[-1]
{0,boundary=2;[I[$>],I[$>+1]]},1,255,128,0
done keep[-1]
variance_patch:
_patch_size>=1
محاسبهٔ
واریانس هر
وصلهٔ
تصویر با
مرکزیت (x,y)،
در تصاویر
انتخابشده.
مقدار
پیشفرض:
'patch_size=16'
مثال:
[#1] image.jpg +variance_patch
11.10. ترسیم
تصویر (Image Drawing)
-------------
arrow:
x0[%],y0[%],x1[%],y1[%],_thickness[%]>=0,_head_length[%]>=0,_head_thickness[%]>=0,_opacity,_pattern,_color1,...
رسم پیکان
مشخصشده
روی تصاویر
انتخابشده.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود. در
صورت مشخص
شدن الگو،
پیکان
بهجای
توپر،
بهصورت
توخالی/دورخطی
رسم
میشود.
مقادیر
پیشفرض:
'thickness=1%'، 'head_length=10%'،
'head_thickness=3%'، 'opacity=1'،
'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] 400,400,1,3 repeat 100 arrow
50%,50%,{u(100)}%,{u(100)}%,3,20,10,0.3,${-rgb} done
axes:
x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,...
رسم
محورهای xy
روی تصاویر
انتخابشده.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود.
برای رسم
تنها یک
محور x در سطر
Y، هر دو
مقدار «y0» و
«y1» را
برابر Y قرار
دهید.
برای رسم
تنها یک
محور y در
ستون X، هر دو
مقدار «x0» و
«x1» را
برابر X قرار
دهید.
مقادیر
پیشفرض:
'font_height=14'، 'opacity=1'،
'pattern=(undefined)' و 'color1=0'.
مثال:
[#1] 400,400,1,3,255 axes -1,1,1,-1
ball:
_size>0,_R,_G,_B,_ambient>=0,_diffuse>=0,_specular>=0,_shininess>=0,_light_x,_light_y,_light_z
ورود یک
اسپرایت
گوی رنگی
دوبُعدی RGBA،
رندر شده با
استفاده از
مدل
نورپردازی
فونگ (Phong).
مقادیر
پیشفرض:
'size=64'، 'R=200'، 'G=R'،
'B=R'، 'ambient=0.25'،
'diffuse=1'، 'specular=1'،
'shininess=20'، 'light_x=1.5'،
'light_y=-1.5' و 'light_z=1'.
مثال:
[#1] repeat 9 { ball {int(1.5^($>+4))},${-rgb} } append_tiles 3,3
chessboard:
size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,...,_color2,...
رسم صفحهٔ
شطرنجی روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'size2=size1'، 'offset1=offset2=0'،
'angle=0'، 'opacity=1'، 'color1=0'
و 'color2=255'.
مثال:
[#1] image.jpg chessboard 32,32,0,0,25,0.3,255,128,0,0,128,255
cie1931:
رسم نمودار
فامداری CIE-1931
روی تصاویر
انتخابشده.
مثال:
[#1] 500,400,1,3 cie1931
circle:
x[%],y[%],R[%],_opacity,_pattern,_color1,...
رسم دایرهٔ
رنگی
مشخصشده
روی تصاویر
انتخابشده.
شعاع «100%»
نمایانگر
«sqrt(width^2+height^2)» است.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود. در
صورت مشخص
شدن الگو،
دایره
بهجای
توپر،
بهصورت
توخالی/دورخطی
رسم
میشود.
مقادیر
پیشفرض:
'opacity=1'، 'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] image.jpg repeat 300 circle {u(100)}%,{u(100)}%,{u(30)},0.3,${-rgb} done
circle 50%,50%,100,0.7,255
close_binary:
0<=_endpoint_rate<=100,_endpoint_connectivity>=0,_spline_distmax>=0,_segment_distmax>=0,0<=_spline_anglemax<=180,_spline_roundness>=0,_area_min>=0,
_allow_self_intersection={ 0:No | 1:Yes }
بستن
خودکار
اشکال باز
در تصاویر
دودویی
(تعریف خطوط
سفید روی
پسزمینهٔ
سیاه).
مقادیر
پیشفرض:
'endpoint_rate=75'، 'endpoint_connectivity=2'،
'spline_distmax=80'، 'segment_distmax=20'،
'spline_anglemax=90'، 'spline_roundness=1'،
'area_min=100'، 'allow_self_intersection=1'.
curve:
[xy_coordinates],_thickness>0,_tilt,_tilt_strength[%],_is_closed={ 0:No |
1:Yes },_opacity,_color1,...
رسم منحنی
پارامتری
مشخصشده
روی تصاویر
انتخابشده.
آرگومانها
عبارتند از:
* «[xy_coordinates]»
مجموعهای
از
مختصاتهای
XY منحنی است
که بهصورت
یک تصویر
۲-کاناله
مشخص
میشود.
* «thickness» ضخامت
ترسیم بر
حسب پیکسل
است.
* «tilt»
زاویهای
است که بر
حسب درجه
تعیین
میشود.
* «tilt_strength» باید
یک عدد ممیز
شناور در [0,1]
باشد (یا در [0,100]
در صورتی که
بهصورت
درصد تعیین
شده باشد).
* «is_closed» یک
مقدار بولی
است که بسته
بودن یا
نبودن
منحنی را
مشخص
میکند.
مقادیر
پیشفرض:
'thickness=0'، 'tilt=45'
مثال:
[#1] image.jpg srand 3 16,1,1,4,u s. c,2 rbf[-2,-1] 1000,0,1 n[-2]
10,{w#0-10} n[-1] 10,{h#0-10} a[-2,-1] c curve[-2]
[-1],6,0,0,0,1,0,128,0
ellipse (+):
x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,...
رسم بیضی
رنگی
مشخصشده
روی تصاویر
انتخابشده.
شعاع «100%»
نمایانگر
«sqrt(width^2+height^2)» است.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود. در
صورت مشخص
شدن الگو،
بیضی
بهجای
توپر،
بهصورت
توخالی/دورخطی
رسم
میشود.
مقادیر
پیشفرض:
'opacity=1'، 'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] image.jpg repeat 300 ellipse
{u(100)}%,{u(100)}%,{u(30)},{u(30)},{u(180)},0.3,${-rgb} done ellipse
50%,50%,100,100,0,0.7,255
flood (+):
x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={ 0:No | 1:Yes
},_opacity,_color1,...
پر کردن
ناحیهای
(Flood-fill) تصاویر
انتخابشده
با استفاده
از مقدار و
تلورانس
مشخصشده.
مقادیر
پیشفرض:
'y=z=0'، 'tolerance=0'،
'is_high_connectivity=0'، 'opacity=1' و
'color1=0'.
مثال:
[#1] image.jpg repeat 1000 flood {u(100)}%,{u(100)}%,0,20,0,1,${-rgb}
done
gaussian:
_sigma1[%],_sigma2[%],_angle
رسم یک
گاوسی
مرکزی روی
تصاویر
انتخابشده،
با انحراف
معیارهای
مشخصشده و
جهتگیری.
مقادیر
پیشفرض:
'sigma1=3'، 'sigma2=sigma1' و
'angle=0'.
مثال:
[#1] 400,400 gaussian 100,30,45
آموزش:
https://gmic.eu/oldtutorial/_gaussian
graph:
[function_image],_plot_type,_vertex_type,_ytop,_ybottom,_opacity,_pattern,_color1,...
رسم نمودار
تابع
مشخصشده
روی تصاویر
انتخابشده.
«plot_type»
میتواند { 0:None
| 1:Lines | 2:Splines | 3:Bar } باشد.
«vertex_type»
میتواند { 0:None
| 1:Points | 2,3:Crosses | 4,5:Circles | 6,7:Squares }
باشد.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود.
مقادیر
پیشفرض:
'plot_type=1'، 'vertex_type=1'،
'ytop=ybottom=0 (auto)'، 'opacity=1'،
'pattern=(undefined)'
و 'color1=0'.
مثال:
[#1] image.jpg +rows 50% blur[-1] 3 split[-1] c div[0] 1.5 graph[0]
[1],2,0,0,0,1,255,0,0 graph[0] [2],2,0,0,0,1,0,255,0 graph[0]
[3],2,0,0,0,1,0,
0,255 keep[0]
grid:
size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,...
رسم شبکهٔ xy
روی تصاویر
انتخابشده.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود.
مقادیر
پیشفرض:
'offset_x=offset_y=0'، 'opacity=1'،
'pattern=(undefined)' و 'color1=0'.
مثال:
[#1] image.jpg grid 10%,10%,0,0,0.5,255
[#2] 400,400,1,3,255 grid 10%,10%,0,0,0.3,0xCCCCCCCC,128,32,16
j (+):
میانبُری
برای دستور
«image».
image (+):
[sprite],_x[%|~],_y[%|~],_z[%|~],_c[%|~],_opacity,_[opacity_mask],_max_opacity_mask
رسم
اسپرایت
مشخصشده
روی تصاویر
انتخابشده.
(معادل
دستور
میانبُر
«j»).
اگر یکی از
آرگومانهای
x، y، z یا c به
«~» ختم
شود، مقدار
آن بهجای
موقعیت،
بهعنوان
یک نسبت
مرکزیت (در [0,1])
در نظر
گرفته
میشود.
نسبتهای
مرکزیت
معمول
عبارتند از
{ 0:left-justified | 0.5:centered | 1:right-justified }.
مقادیر
پیشفرض:
'x=y=z=c=0'، 'opacity=1'،
'opacity_mask=(undefined)' و 'max_opacity_mask=1'.
مثال:
[#1] image.jpg +crop 40%,40%,60%,60% resize[-1] 200%,200%,1,3,5 frame[-1]
xy,2,0 image[0] [-1],30%,30% keep[0]
ja:
میانبُری
برای دستور
«imagealpha».
imagealpha:
[sprite],_x[%|~],_y[%|~],_z[%|~],_c[%|~],_opacity
رسم
اسپرایت
مشخصشده
روی تصاویر
انتخابشده،
با در نظر
گرفتن
اینکه
آخرین
کانال
اسپرایت
همان کانال
آلفای
ترسیم است.
(معادل
دستور
میانبُر
«ja»).
اگر یکی از
آرگومانهای
x، y، z یا c به
«~» ختم
شود، مقدار
آن بهجای
موقعیت،
بهعنوان
یک نسبت
مرکزیت (در [0,1])
در نظر
گرفته
میشود.
نسبتهای
مرکزیت
معمول
عبارتند از
{ 0:left-justified | 0.5:centered | 1:right-justified }.
مقادیر
پیشفرض:
'x=y=z=c=0' و 'opacity=1'.
line (+):
x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,...
رسم خط رنگی
مشخصشده
روی تصاویر
انتخابشده.
«pattern» یک عدد
هگزادسیمال
با شروع از
«0x» است که
حتی در صورت
تعیین رنگ،
میتواند
حذف شود.
مقادیر
پیشفرض:
'opacity=1'، 'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] image.jpg repeat 500 line 50%,50%,{u(w)},{u(h)},0.5,${-rgb} done line
0,0,100%,100%,1,0xCCCCCCCC,255 line 100%,0,0,100%,1,0xCCCCCCCC,255
line_aa:
x0[%],y0[%],x1[%],y1[%],_opacity,_color1,...
رسم خط رنگی
صافشده (antialiased)
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'opacity=1' و 'color1=0'.
مثال:
[#1] 512,512,1,3 repeat 100 line_aa {v([w,h,w,h])-1},1,${-rgb} done
spline:
x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_opacity,_color1,...
رسم منحنی
اسپلاین
رنگی
مشخصشده
روی تصاویر
انتخابشده
(اسپلاین
هرمیت
مکعبی).
مقادیر
پیشفرض:
'opacity=1' و 'color1=0'.
مثال:
[#1] image.jpg repeat 30 { spline
{u(100)}%,{u(100)}%,{u(-600,600)},{u(-600,600)},{u(100)}%,{u(100)}%,{u(-600,600)},{u(-600,600)},1,${-rgb}
}
thickcircle:
x[%],y[%],R[%],_thickness>=0,_opacity,_color1,...رسم
دایره با خط
دور ضخیم و
رنگ
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'thickness=3'، 'opacity=1' و
'color1=0'.
مثال:
[#1] 400,400 repeat 15 { R:=lerp(10,190,$%) thickcircle 200,200,$R,2,1,$R } n
0,255 map 7
thickellipse:
x[%],y[%],R[%],r[%],_angle,_thickness>=0,_opacity,_color1,...
رسم بیضی با
خط دور ضخیم
و رنگ
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'thickness=3'، 'opacity=1' و
'color1=0'.
مثال:
[#1] image.jpg repeat 300 thickellipse
{u(100)}%,{u(100)}%,{u(50)},{u(50)},{u(180)},3,0.6,${-rgb} done thickellipse
50%,50%,200,100,0,5,0.7,255
thickline:
x0[%],y0[%],x1[%],y1[%],_thickness,_opacity,_color1
رسم خط ضخیم
با رنگ
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'thickness=2'، 'opacity=1' و
'color1=0'.
مثال:
[#1] 400,400,1,3 repeat 100 thickline {u([w,h,w,h,5])},0.5,${-rgb} done
thickpolygon:
N>=1,x1[%],y1[%],...,xN[%],yN[%],_thickness>=0,_opacity,_color1,... |
[coords],_thickness>=0,_opacity,_color1,...
رسم
چندضلعی
N-رأسی با خط
دور ضخیم و
رنگ
مشخصشده
روی تصاویر
انتخابشده.
اگر 'thickness<0'
باشد،
دستور به
جای یک
چندضلعی
بسته، یک
چندضلعی
باز رسم
میکند.
مقادیر
پیشفرض:
'thickness=3'، 'opacity=1' و
'color1=0'.
مثال:
[#1] image.jpg thickpolygon 4,20%,20%,80%,30%,80%,70%,20%,80%,5,1,0,255,0
[#2] image.jpg 2,16,1,1,'u(x?h#0:w#0)' thickpolygon[-2] [-1],5,1,255,0,255
remove[-1]
thickspline:
x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_thickness,_opacity,_color1,...
رسم منحنی
اسپلاین
ضخیم با رنگ
مشخصشده
روی تصاویر
انتخابشده
(اسپلاین
هرمیت
مکعبی).
مقادیر
پیشفرض:
'thickness=3'، 'opacity=1' و
'color1=0'.
مثال:
[#1] image.jpg repeat 30 { thickspline
{u(100)}%,{u(100)}%,{u(-600,600)},{u(-600,600)},{u(100)}%,{u(100)}%,{u(-600,600)},{u(-600,600)},3,1,
${-rgb} }
mandelbrot:
z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={ 0:No | 1:Yes
},_c0r,_c0i,_opacity
رسم
فراکتال
مندلبرو/ژولیا
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'iteration_max=100'، 'is_julia=0'،
'c0r=c0i=0' و 'opacity=1'.
مثال:
[#1] 400,400 mandelbrot -2.5,-2,2,2,1024 map 0 +blur 2 elevation3d[-1]
-0.2
marble:
_image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0
رندر کردن
الگویی
شبیه سنگ
مرمر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'image_weight=0.2'، 'pattern_weight=0.1'،
'angle=45'، 'amplitude=0'،
'sharpness=0.4' و
'anisotropy=0.8'،
'alpha=0.6'، 'sigma=1.1' و
'cut_low=cut_high=0'.
مثال:
[#1] image.jpg +marble ,
maze:
_width>0,_height>0,_cell_size>0
درج ماز با
اندازه
مشخصشده.
مثال:
[#1] maze 30,20 negate normalize 0,255
maze_mask:
_cellsize>0
درج ماز بر
اساس
اندازه و
شکل تصاویر
ماسک
انتخابشده.
ماسک
میتواند
حاوی اشکال
ناپیوسته
باشد.
مثال:
[#1] 0 text "G'MIC",0,0,53,1,1 dilate 3 autocrop 0 frame xy,1,0
maze_mask 8 dilate 3 negate mul 255
newton_fractal:
z0r,z0i,z1r,z1i,_angle,0<=_descent_method<=2,_iteration_max>=0,_convergence_precision>0,_expr_p(z),_expr_dp(z),_expr_d2p(z)
رسم
فراکتال
نیوتن روی
تصاویر
انتخابشده،
برای اعداد
مختلط در
بازه (z0r,z0i) - (z1r,z1i).
تصاویر
حاصل دارای
۳ کانال
هستند که
مفهوم
آنها به
صورت [ last_zr, last_zi,
nb_iter_used_for_convergence ] است.
'descent_method'
میتواند {
0:Secant | 1:Newton | 2:Householder }
باشد.
مقادیر
پیشفرض:
'angle=0'، 'descent_method=1'،
'iteration_max=200'،
'convergence_precision=0.01'،
'expr_p(z)=z^^3-1'، 'expr_dp(z)=3*z^^2' و
'expr_d2z(z)=6*z'.
مثال:
[#1] 400,400 newton_fractal -1.5,-1.5,1.5,1.5,0,2,200,0.01,"z^^6 + z^^3
- 1","6*z^^5 + 3*z^^2","30*z^^4 + 6*z" f "[
atan2(i1,i0)*90+20,1,
cut(i2/30,0.2,0.7) ]" hsl2rgb
pack_sprites:
[sprite_set],_nb_scales>=1,0<_min_scale<=100,_allow_rotation={
0:None | 1:180 deg. | 2:90 deg. | 3:Any },_spacing,_max_attempts>0
تلاش برای
چیدن
تصادفی
بیشترین
تعداد ممکن
از
اسپریتها
در نواحی
«خالی» یک
تصویر.
اسپریتها
در حین
فرآیند
چیدمان
میتوانند
به صورت
اختیاری
چرخانده و
مقیاسبندی
شوند.
تصویر
انتخابشده
همان بومی
است که با
اسپریتها
پر خواهد شد.
مقادیر
صفرِ کانال
آلفای آن،
مکانهای
بالقوه
برای رسم
اسپریتها
را مشخص
میکند.
'[sprite_set]' مجموعه
اسپریتهای
مد نظر برای
پر کردن بوم
را تعریف
میکند.
مقادیر
صفرِ کانال
آلفای
آنها شکل
اسپریت را
مشخص
میکند.
چیدمان
اسپریتها
در
مکانهای
تصادفی و به
صورت
تکراری با
مقیاسهای
رو به کاهش
انجام
میشود.
'nb_scales' تعداد
مقیاسهای
کاهشیِ در
نظر
گرفتهشده
برای همه
اسپریتهای
مشخصشده
جهت چیدمان
را تعیین
میکند.
'min_scale' (به %)
حداقل
اندازه در
نظر
گرفتهشده
برای
چیدمان را
مشخص
میکند (به
صورت درصدی
از اندازه
اصلی
اسپریت
تعیین
میشود).
'spacing'
میتواند
مثبت یا
منفی باشد.
'max_attempts' حداکثر
تعداد
تلاشها
برای چیدن
یک اسپریت
در هر مقیاس
را تعیین
میکند.
مقادیر
پیشفرض:
'nb_scales=1'، 'min_scale=25'،
'allow_rotation=0'، 'spacing=1' و
'max_attempts=512'.
مثال:
[#1] shape_heart 512 negate normalize 0,255 channels -3,0 repeat 2 { ball
48,${-rgb} } +pack_sprites[0] [^0],5,15
piechart:
label_height>=0,label_R,label_G,label_B,"label1",value1,R1,G1,B1,...,"labelN",valueN,RN,GN,BN
رسم نمودار
دایرهای
روی تصاویر
(RGB)
انتخابشده.
مثال:
[#1] image.jpg piechart
25,0,0,0,"Red",55,255,0,0,"Green",40,0,255,0,"Blue",30,128,128,255,"Other",5,128,128,128
plasma:
_alpha,_beta,_scale>=0
رسم یک
فراکتال
پلاسمای
رنگی
تصادفی روی
تصاویر
انتخابشده.
این دستور
الگوریتم
موسوم به
«Diamond-Square» را
پیادهسازی
میکند.
مقادیر
پیشفرض:
'alpha=1'، 'beta=1' و 'scale=8'.
مثال:
[#1] 400,400,1,3 plasma 1
آموزش:
https://gmic.eu/oldtutorial/_plasma
point (+):
x[%],_y[%],_z[%],_opacity,_color1,...
تنظیم
پیکسل با
رنگ
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'z=0'، 'opacity=1' و 'color1=0'.
مثال:
[#1] image.jpg repeat 10000 point {u(100)}%,{u(100)}%,0,1,${-rgb} done
polka_dots:
diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,...
رسم الگوی
نقطهای
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'density=20'، 'offset1=offset2=50'،
'angle=0'، 'aliasing=10'،
'shading=1'، 'opacity=1' و
'color=255'.
مثال:
[#1] image.jpg polka_dots 10,15,0,0,20,10,1,0.5,0,128,255
polygon (+):
N>=1,x1[%],y1[%],...,xN[%],yN[%],_opacity,_pattern,_color1,... |
[coords],_opacity,_pattern,_color1,...
رسم
چندضلعی
N-رأسی با رنگ
مشخصشده
روی تصاویر
انتخابشده.
'pattern' یک عدد
هگزادسیمال
است که با '0x'
آغاز
میشود و
حتی در صورت
تعیین رنگ
نیز
میتواند
حذف شود. در
صورت تعیین
الگو،
چندضلعی به
جای توپر به
صورت دارای
خط دور رسم
میشود.
افزودن یک
علامت '-' پیش
از 'pattern' باعث
میشود
دستور به
جای یک
چندضلعی
بسته، یک خط
شکسته باز
رسم کند.
مقادیر
پیشفرض:
'opacity=1'، 'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] image.jpg polygon 4,20%,20%,80%,30%,80%,70%,20%,80%,0.3,0,255,0 polygon
4,20%,20%,80%,30%,80%,70%,20%,80%,1,0xCCCCCCCC,255
[#2] image.jpg 2,16,1,1,'u(x?h#0:w#0)' polygon[-2] [-1],0.6,255,0,255
remove[-1]
quiver:
[function_image],_sampling[%]>0,_factor>=0,_is_arrow={ 0:No | 1:Yes
},_opacity,_color1,...
رسم میدان
برداری/جهتدار
دوبعدیِ
مشخصشده
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'sampling=5%'، 'factor=1'،
'is_arrow=1'، 'opacity=1'،
'pattern=(undefined)'
و 'color1=0'.
مثال:
[#1] 100,100,1,2,'!c?x-w/2:y-h/2' 500,500,1,3,255 quiver[-1] [-2],10
[#2] image.jpg +rescale2d ,600 luminance[0] gradient[0] mul[1] -1
reverse[0,1] append[0,1] c blur[0] 8 orientation[0] quiver[1]
[0],20,1,1,0.8,255
rectangle:
x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,...
رسم مستطیل
با رنگ
مشخصشده
روی تصاویر
انتخابشده.
'pattern' یک عدد
هگزادسیمال
است که با '0x'
آغاز
میشود و
حتی در صورت
تعیین رنگ
نیز
میتواند
حذف شود. در
صورت تعیین
الگو،
مستطیل به
جای توپر به
صورت دارای
خط دور رسم
میشود.
مقادیر
پیشفرض:
'opacity=1'، 'pattern=(undefined)' و
'color1=0'.
مثال:
[#1] image.jpg repeat 30 { rectangle
{u(100)}%,{u(100)}%,{u(100)}%,{u(100)}%,0.3,${-rgb} }
rorschach:
'smoothness[%]>=0','mirroring={ 0:None | 1:X | 2:Y | 3:XY }
رندر کردن
لکههای
جوهر
رورشاخمانند
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'smoothness=5%' و 'mirroring=1'.
مثال:
[#1] 400,400 rorschach 3%
sierpinski:
recursion_level>=0
رسم مثلث
سرپینسکی
روی تصاویر
انتخابشده.
مقدار
پیشفرض:
'recursion_level=7'.
مثال:
[#1] image.jpg sierpinski 7
spiralbw:
width>0,_height>0,_is_2dcoords={ 0:No | 1:Yes }
درج یک
تصویر
مارپیچ
مستطیلی
۲بعدی با
اندازه
مشخصشده.
مقادیر
پیشفرض:
'height=width' و 'is_2dcoords=0'.
مثال:
[#1] spiralbw 16
[#2] image.jpg spiralbw {[w,h]},1 +warp[0] [1],0,1,1 +warp[2] [1],2,1,1
tetraedron_shade:
x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,...,R3,G3,B3,...
رسم
چهاروجهی
با رنگهای
درونیابیشده
روی تصاویر
(حجمی)
انتخابشده.
t (+):
میانبُری
برای دستور
'text'.
text (+):
text,_x[%|~],_y[%|~],_{ font_height[%]>=0 | custom_font
},_opacity,_color1,...رشته
متن رنگی
مشخصشده
را روی
تصویرهای
انتخابشده
رسم میکند.
(معادل
دستور
میانبر 't').
اگر یکی از
آرگومانهای
x یا y با یک '~'
پایان
یابد،
انتظار
میرود
مقدار آن به
جای یک
موقعیت، یک
نسبت
مرکزیت (در
بازه [0,1]) باشد.
نسبتهای
مرکزیت
معمول
عبارتند از:
{ 0:left-justified | 0.5:centered | 1:right-justified }.
اندازههای
'13' و '128' خاص
هستند و با
قلمهای
باینری
(بدون
شکستگیگیری/no-antialiasing)
مطابقت
دارند. هر
اندازه قلم
دیگری با
ضدپلگی (anti-aliasing)
رندر
میشود.
مشخص کردن
یک تصویر
مقصد خالی،
اندازه آن
را به ابعاد
جدیدی
تغییر
میدهد
بهگونهای
که تصویر
شامل کل
رشته متنی
باشد.
میتوان یک
قلم سفارشی
را به عنوان
نام متغیری
که فهرستی
تصویری از
۲۵۶ یا ۵۱۲
مورد را
ذخیره
میکند
مشخص کرد
(۵۱۲ برای
۲۵۶ اسپریت
نویسه + ۲۵۶
کدر بودن
مرتبط)، یا
به عنوان
انتخابی از
تصویرها که
نسخه
سریالیشدهای
از چنین
فهرست
تصویری
است.
مقادیر
پیشفرض:
'x=y=0.01~'، 'font_height=16'،
'opacity=1' و 'color1=0'.
مثال:
[#1] image.jpg rescale2d ,600 div 2 y=0 repeat 30 { text {2*$>}" :
This is a nice text!",10,$y,{2*$>},0.9,255 y+={2*$>} }
[#2] 0 text "G'MIC",0,0,23,1,255
to:
میانبری
برای دستور
'text_outline'.
text_outline:
text,_x[%|~],_y[%|~],{ _font_height[%]>0 | custom_font
},_outline>=0,_opacity,_color1,...
رشته متنی
رنگی و
دارای خط
دور
مشخصشده
را روی
تصویرهای
انتخابشده
رسم میکند.
اگر یکی از
آرگومانهای
x یا y با یک '~'
پایان
یابد،
انتظار
میرود
مقدار آن
به جای یک
موقعیت، یک
نسبت
مرکزیت (در
بازه [0,1]) باشد.
نسبتهای
مرکزیت
معمول
عبارتند از:
{ 0:left-justified | 0.5:centered | 1:right-justified }.
مقادیر
پیشفرض:
'x=y=0.01~'، 'font_height=7.5%'،
'outline=2'، 'opacity=1'،
'color1=color2=color3=255' و
'color4=255'.
مثال:
[#1] image.jpg text_outline "Hi there!",10,10,63,3
triangle_shade:
x0,y0,x1,y1,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,...
مثلثی با
رنگهای
درونیابیشده
را روی
تصویرهای
انتخابشده
رسم
میکند.
مثال:
[#1] image.jpg triangle_shade
20,20,400,100,120,200,255,0,0,0,255,0,0,0,255
truchet:
_scale>0,_radius>=0,_pattern_type={ 0:Straight | 1:Curved }
تصویرهای
انتخابشده
را با
الگوهای
تصادفی
تروشه (truchet) پر
میکند.
مقادیر
پیشفرض:
'scale=32'، 'radius=5' و
'pattern_type=1'.
مثال:
[#1] 400,300 truchet ,
turbulence:
_radius>0,_octaves={ 1,2,3...,12 },_alpha>0,_difference={ -10,10
},_mode={ 0,1,2,3 }
نویز
فراکتالی
یا آشفتگی
(turbulence) را روی
تصویرهای
انتخابشده
رندر
میکند.
مقادیر
پیشفرض:
'radius=32'، 'octaves=6'،
'alpha=3'، 'difference=0' و 'mode=0'.
مثال:
[#1] 400,400,1,3 turbulence 16
آموزش:
https://gmic.eu/oldtutorial/_turbulence
yinyang:
نماد یین و
یانگ را روی
تصویرهای
انتخابشده
رسم
میکند.
مثال:
[#1] 400,400 yinyang
11.11. محاسبات
ماتریسی (Matrix
Computation)
-------------------------------------
diagonal:
بردارهای
انتخابشده
را به
ماتریسهای
قطری تبدیل
میکند.
مثال:
[#1] 1,10,1,1,'y' +diagonal
dijkstra:
starting_vertex>=0,_ending_vertex={ -1:None | >=0 }
کمترین
فاصلهها/مسیرها
را در
گرافهای
انتخابشده،
از 'starting_vertex'
مشخصشده
تا تمام
رأسهای
دیگر
(اختیاراً
تنها تا
زمانی که
به 'ending_vertex' برسد)
محاسبه
میکند.
یک گراف با 'N'
رأس به
عنوان یک
ماتریس
مجاورت 'NxN'
مشخص
میشود که
وزن تمامی
یالهای
متصلکننده
رأسها را
نشان
میدهد
(زمانی که دو
رأس متصل
نیستند
روی 'inf'
تنظیم
میشود).
این دستور
یک تصویر '1xNx1x2'
حاوی
اطلاعات
'[distance,parent]'
بازمیگرداند:
- 'distance' حداقل
فاصله از
رأس '#y' تا
'starting_vertex' است
(یعنی مجموع
وزن
یالهایی
که
کوتاهترین
مسیر بین
این دو رأس
را
تشکیل
میدهند).
- 'parent' اندیس
رأس بعدی
است که باید
برای رسیدن
به 'starting_vertex' از
طریق
کوتاهترین
مسیر دنبال
شود.
مقدار
پیشفرض:
'ending_vertex=-1'
eigen (+):
مقادیر
ویژه و
بردارهای
ویژه
ماتریسهای
متقارن یا
میدانهای
ماتریسی
انتخابشده
را محاسبه
میکند.
اگر یکی از
تصویرهای
انتخابشده
دارای ۳ یا ۶
کانال
باشد، به
عنوان
میدانی از
ماتریسهای
متقارن 2x2 یا 3x3
در نظر
گرفته
میشود
که عناصر
ویژه آن در
هر نقطه از
میدان
محاسبه
میشوند.
مثال:
[#1] (1,0,0;0,2,0;0,0,3) +eigen
[#2] image.jpg structuretensors blur 2 eigen split[0] c
آموزش:
https://gmic.eu/oldtutorial/_eigen
eye:
_size>0
یک ماتریس
همانی با
اندازه
دادهشده
را به
انتهای
فهرست
تصویرها
اضافه
میکند.
مثال:
[#1] eye 3 eye 7 eye 10
fitsamples:
nb_samples>0,_relevant_dimension[%]>0,_average_vector_varname,_dilation_vector_varname,_orientation_matrix_varname
تعداد 'nb_samples'
بردار
تولید
میکند که
همان توزیع
گاوسی
چندمتغیره
بردارهای
تصویرهای
انتخابشده
را دارند.
هر ورودی
نشاندهنده
مجموعهای
از 'M' بردار
با بُعد 'N'
است (با M>1)
(مشخصشده
به عنوان
تصویری با
اندازه 'MxNx1x1'،
'Mx1xNx1'،
'Mx1x1xN'، '1xMxNx1'، '1xMx1xN'
یا '1x1xMxN').
این دستور
مجموعه
جدیدی از
بردارهای
تصادفی با
هندسه
مشابه
بازمیگرداند.
مقادیر
پیشفرض:
'relevant_dimension=100%' و
'average_vector_varname=orientation_matrix_varname=dilation_matrix_varname=(undefined)
fR'.
invert:
ماتریسهای
انتخابشده
را معکوس
میکند (یا
شبهمعکوس
مور-پنروز
را برای
ماتریسهای
غیرمربعی
محاسبه
میکند).
مثال:
[#1] (0,1,0;0,0,1;1,0,0) +invert
meigen:
m>=1
تقریبی از 'm'
بزرگترین
مقادیر
ویژه و
بردارهای
ویژه
ماتریسهای
متقارن
انتخابشده
را،
با استفاده
از روش
تکرار
آرنولدی
(https://en.wikipedia.org/wiki/Arnoldi_iteration)
محاسبه
میکند.
مقدار
بزرگتر 'm'
با دقت عددی
بهتری
همراه است.
مثال:
[#1] (1,0,0;0,2,0;0,0,3) +meigen 3
mproj (+):
[dictionary],_method,_max_iter={ 0:Auto | >0 },_max_residual>=0
بهترین
تصویر
منطبق
ماتریسهای
انتخابشده
را بر اسپن (span)
یک
فرهنگلغت
(dictionary)
فراتکمیل D،
با استفاده
از تصویر
متعامد یا
الگوریتم Matching
Pursuit مییابد.
تصویرهای
انتخابشده
ماتریسهای
دوبعدی
هستند که در
آن هر ستون
نمایانگر
سیگنالی
برای تصویر
کردن است.
'[dictionary]'
ماتریسی
است که در آن
هر ستون
عنصری از
فرهنگلغت D
است.
'method' مشخص
میکند چه
الگوریتم
تصویری
باید اعمال
شود. این
مقدار
میتواند
شامل موارد
زیر باشد:
- 0 = تصویر
متعامد
(جواب
کمترین
مربعات با
استفاده از
حلکننده
مبتنی بر LU).
- 1 =
الگوریتم matching
pursuit.
- 2 =
الگوریتم matching
pursuit، با یک گام
تصویر
متعامد تکی
در پایان.
- >=3 =
الگوریتم orthogonal
matching pursuit که در آن
یک مرحله
تصویر
متعامد
به ازای هر
'method-2' تکرار
انجام
میشود.
'max_iter' حداکثر
تعداد
تکرارهای
پردازششده
برای هر
سیگنال را
تنظیم
میکند.
اگر روی '0'
تنظیم شود
(پیشفرض)،
'max_iter' برابر با
تعداد
ستونهای D
خواهد بود.
(تنها برای matching
pursuit و مشتقات
آن معنادار
است).
'max_residual' یک
معیار توقف
برای دقت
بازسازی
سیگنال
ارائه
میدهد.
(تنها برای matching
pursuit و مشتقات
آن معنادار
است).
برای هر
تصویر
انتخابشده،
نتیجه به
عنوان یک
ماتریس W
بازگردانده
میشود
که
ستونهای
آن متناظر
با وزنهای
اختصاصیافته
به هر ستون D
هستند،
بهطوریکه
حاصلضرب
ماتریسی D*W
تقریبی از
ماتریس
ورودی
باشد.
مقادیر
پیشفرض:
'method=0'، 'max_iter=0' و
'max_residual=1e-6'.
orthogonalize:
_mode = { 0:orthogonalize | 1:orthonormalize }
ماتریسهای
انتخابشده
را با
استفاده از
فرایند
گرام-اشمیت
اصلاحشده
متعامد یا
یکایکمتعامد
میکند.
مقدار
پیشفرض:
'mode=0'.
poweriteration:
_nb_eigenvectors>0,_epsilon>0,_max_iter>0
تعداد 'nb_eigenvectors'
بزرگترین
بردارهای
ویژه
ماتریسهای
متقارن
انتخابشده
را،
با استفاده
از
الگوریتم
تکرار
توانی (power iteration)
محاسبه
میکند.
مقادیر
پیشفرض:
'nb_eigenvectors=1'، 'epsilon=1e-5' و
'max_iter=100'.
qr (+):
_is_reduced_form={ 0:No | 1:Yes },_is_pivoting={ 0:No | 1:Yes }
تجزیه QR
ماتریسهای
انتخابشده
را
(اختیاراً
با
محوریابی/pivoting)
محاسبه
میکند.
با فرض
اینکه
تصویر
انتخابشده
A یک ماتریس
با اندازه m×n
باشد (m سطر، n
ستون)، این
دستور
ماتریسهای
Q و R را
بازمیگرداند،
بهطوری که A
= Q*R باشد.
* ماتریس Q یک
ماتریس
متعامد
است، با
اندازه 'm×m'
اگر 'is_reduced_form==0'
باشد، یا در
غیر این
صورت 'm×min(m,n)'.
* ماتریس R یک
ماتریس
بالا-مثلثی
با اندازه
'm×n' است اگر
'is_reduced_form==0' باشد
یا در غیر
این صورت
'min(m,n)×n'.
* رابطه Q^T*Q = Id.
* اگر n>m باشد،
تنها بخش
نخست m×m از R
بالا-مثلثی
است.
اگر 'is_pivoting'
فعال باشد،
یک تصویر
اضافی از
جایگشتهای
ستونی
بازگردانده
میشود.
مقادیر
پیشفرض:
'is_reduced_form=1' و 'is_pivoting=0'.
مثال:
[#1] 10,10,1,1,'v(100)' +qr +mmul[-2,-1]
solve (+):
[image]
دستگاه خطی AX
= B را برای
ماتریسهای
B
انتخابشده
و ماتریس A
مشخصشده
حل میکند.
اگر دستگاه
فرومعین یا
فرامعین
باشد، جواب
کمترین
مربعات یا
کمترین
هنجار
بازگردانده
میشود.
مثال:
[#1] (0,1,0;1,0,0;0,0,1) (1;2;3) +solve[-1] [-2]
svd (+):
تجزیه
مقدارهای
منفرد (SVD)
ماتریسهای
انتخابشده
را محاسبه
میکند.
مثال:
[#1] 10,10,1,1,'x==y?x+u(-0.2,0.2):0' +svd
transpose:
ترانهاده
ماتریسهای
انتخابشده
را محاسبه
میکند.
مثال:
[#1] image.jpg +transpose
trisolve:
[image]
دستگاه
سهقطری AX = B
را برای
بردارهای B
انتخابشده
و ماتریس
سهقطری A
مشخصشده
حل میکند.
ماتریس
سهقطری
باید به
عنوان یک
بردار ۳
ستونی
ذخیره شود،
به نحوی که
ستون دوم
حاوی ضرایب
قطری است،
در حالی که
ستونهای
اول و سوم
حاوی ضرایب
چپ و راست
هستند.
مثال:
[#1] (0,0,1;1,0,0;0,1,0) (1;2;3) +trisolve[-1] [-2]
11.12. مشهای
سهبعدی (3D Meshes)
-----------------------------
+3d (+):
میانبری
برای دستور
'add3d'.
add3d (+):
tx,_ty,_tz |
[object3d] |
(no arg)
اشیاء
سهبعدی
انتخابشده
را با بردار
جابجایی
مشخصشده
انتقال
میدهد، یا
آنها را با
شیء
سهبعدی
مشخصشده
ادغام
میکند، یا
تمامی
اشیاء
سهبعدی
انتخابشده
را با
یکدیگر
ادغام
مینماید.
(معادل
دستور
میانبر '+3d').
مقادیر
پیشفرض:
'ty=tz=0'.
مثال:
[#1] sphere3d 10 repeat 5 { +add3d[-1] 10,{u(-10,10)},0 color3d[-1] ${-rgb} }
add3d
[#2] repeat 20 { torus3d 15,2 color3d[-1] ${-rgb} mul3d[-1] 0.5,1 if $>%2
rotate3d[-1] 0,1,0,90 fi add3d[-1] 70 add3d rotate3d[-1] 0,0,1,18
}animate3d:
nb_frames>0,_step_angle_x,_step_angle_y,_step_angle_z,_zoom_factor,0<=_fake_shadow_level<=100,_[background]
تولید
فریمهای
پویانمایی
سهبعدی از
اشیاء
سهبعدی در
حال چرخش.
فریمها در
راستای
محور z روی هم
چیده
میشوند
(تصویر حجمی).
اندازه
فریم برابر
با اندازه
تصویر '[background]'
است (یا 800x800 در
صورتی که
پسزمینهای
مشخص نشده
باشد).
مقادیر
پیشفرض:
'step_angle_x=0'، 'step_angle_y=5'،
'step_angle_z=0'، 'zoom_factor=1'،
'fake_shadow_level=50'
و 'background=(undefined)'.
apply_camera3d:
pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z
اعمال
ماتریس
دوربین
سهبعدی بر
اشیاء
سهبعدی
انتخابشده.
مقادیر
پیشفرض:
'target_x=0'، 'target_y=0'،
'target_z=0'، 'up_x=0'، 'up_y=-1'
و 'up_z=0'.
apply_matrix3d:
a11,a12,a13,...,a31,a32,a33
اعمال
ماتریس
دوران
سهبعدی
مشخصشده
بر اشیاء
سهبعدی
انتخابشده.
مثال:
[#1] torus3d 10,1 +apply_matrix3d
{mul(rot(1,0,1,-15°),[1,0,0,0,2,0,0,0,8],3)}
array3d:
size_x>=1,_size_y>=1,_size_z>=1,_offset_x[%],_offset_y[%],_offset_y[%]
تکثیر یک
شیء
سهبعدی در
راستای
محورهای X، Y
و Z.
مقادیر
پیشفرض:
'size_y=1'، 'size_z=1' و
'offset_x=offset_y=offset_z=100%'.
مثال:
[#1] torus3d 10,1 +array3d 5,5,5,110%,110%,300%
arrow3d:
x0,y0,z0,x1,y1,z1,_radius[%]>=0,_head_length[%]>=0,_head_radius[%]>=0
درج پیکان
سهبعدی با
نقاط شروع و
پایان
سهبعدی
مشخصشده.
مقادیر
پیشفرض:
'radius=5%'، 'head_length=25%' و
'head_radius=15%'.
مثال:
[#1] repeat 10 { a:=$>*2*pi/10 arrow3d 0,0,0,{cos($a)},{sin($a)},-0.5 }
+3d
axes3d:
_size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z,_is_origin={
0:No | 1:Yes }
درج
محورهای
سهبعدی با
اندازههای
مشخصشده
در راستای
جهتهای x، y
و z.
مقادیر
پیشفرض:
'size_x=size_y=size_z=1'، 'font_size=23'،
'label_x=X'، 'label_y=Y'، 'label_z=Z'
و
'is_origin=1'
مثال:
[#1] axes3d ,
boundingbox3d:
جایگزینی
اشیاء
سهبعدی
انتخابشده
با
جعبههای
مرزی
سهبعدی
آنها.
مثال:
[#1] torus3d 100,30 +boundingbox3d +3d[-1] [-2]
box3d:
_size_x,_size_y,_size_z
درج جعبه
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مقادیر
پیشفرض:
'size_x=1' و 'size_z=size_y=size_x'.
مثال:
[#1] box3d 100,40,30 +primitives3d 1 color3d[-2] ${-rgb}
c3d:
میانبری
برای دستور
'center3d'.
center3d:
قرار دادن
مرکز اشیاء
سهبعدی
انتخابشده
در (0,0,0).
(معادل
دستور
میانبر 'c3d').
مثال:
[#1] repeat 100 { circle3d {u(100)},{u(100)},{u(100)},2 } add3d color3d[-1]
255,0,0 +center3d color3d[-1] 0,255,0 add3d
chainring3d:
_nb_links>=3,_x_scale>0,_y_scale>0,_z_scale>0
درج حلقه
زنجیر
سهبعدی با
هندسه
مشخصشده.
ترجیحاً
مقدار 'nb_links'
باید زوج
باشد.
مقادیر
پیشفرض:
'nb_links=16'، 'x_scale=0.5'، 'y_scale=1'
و 'z_scale=1'.
مثال:
[#1] chainring3d
circle3d:
_x0,_y0,_z0,_radius>=0
درج دایره
سهبعدی در
مختصات
مشخصشده.
مقادیر
پیشفرض:
'x0=y0=z0=0' و 'radius=1'.
مثال:
[#1] repeat 500 { a:=$>*pi/250 circle3d {cos(3*$a)},{sin(2*$a)},0,{$a/50}
color3d[-1] ${-rgb},0.4 } add3d
circles3d:
_radius>=0,_is_outlined={ 0:No | 1:Yes }
تبدیل
اشیاء
سهبعدی
مشخصشده
به
مجموعههایی
از
دایرههای
سهبعدی با
شعاع
مشخصشده.
مقادیر
پیشفرض:
'radius=1' و 'is_outlined=1'.
مثال:
[#1] image.jpg luminance rescale2d ,40 threshold 50% * 255 pointcloud3d
color3d[-1] 255,255,255 circles3d 0.7
col3d:
میانبری
برای دستور
'color3d'.
color3d:
R,_G,_B,_opacity
تنظیم رنگ (و
در صورت
تمایل
شفافناپذیری)
اشیاء
سهبعدی
انتخابشده.
(معادل
دستور
میانبر
'col3d').
مقدار
پیشفرض: 'B=G=R'
و 'opacity=(undefined)'.
مثال:
[#1] torus3d 100,10 repeat 7 { +rotate3d[-1] 1,0,0,20 color3d[-1] ${-rgb} }
add3d
colorcube3d:
_is_wireframe={ 0:No | 1:Yes }
درج مکعب
رنگی
سهبعدی.
مقدار
پیشفرض:
'is_wireframe=0'.
مثال:
[#1] colorcube3d mode3d 2 +primitives3d 1
colorize3d:
_color_function,_passed_images_for_color_function
رنگآمیزی
اجزای
اولیه (primitives)
اشیاء
سهبعدی
انتخابشده،
بر اساس یک
تابع
مشخصشده.
* تابع 'color_function'
برداری از
نوع G، GA، RGB یا RGBA
برمیگرداند
که
میتواند
به
متغیرهای
'x'، 'y' و 'z'
وابسته
باشد، که به
عنوان
مختصات
مرکز ثقل (barycenter)
برای هر جزء
اولیه
تعریف
شدهاند.
* آرگومان
'passed_images_for_color_function'
میتواند
به صورت
انتخابی
(مانند '[0,2]') از
تصاویری
مشخص شود که
هنگام
تغییر دادن
اشیاء
سهبعدی در
انتهای
فهرست
تصاویر درج
میشوند،
تا 'color_function'
بتواند به
محتوای
آنها
دسترسی
داشته
باشد.
مقادیر
پیشفرض:
'color_function=[x,y,z]' و
'passed_images_for_color_function='.
مثال:
[#1] torus3d 100,40,640,100 c3d n3d mul3d 256 +3d 128,128,128 sample
colorful,257 colorize3d[0] "I(#-1,x,y,0)",[1]
cone3d:
_radius,_height,_nb_subdivisions>0
درج مخروط
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مقدار
پیشفرض:
'radius=1'، 'height=1' و
'nb_subdivisions=24'.
مثال:
[#1] cone3d 10,40 +primitives3d 1 color3d[-2] ${-rgb}
cubes3d:
_size>=0
تبدیل
اشیاء
سهبعدی
مشخصشده
به
مجموعههایی
از
مکعبهای
سهبعدی با
اندازه
مشخصشده.
مقدار
پیشفرض:
'size=1'.
مثال:
[#1] image.jpg luminance rescale2d ,40 threshold 50% * 255 pointcloud3d
color3d[-1] 255,255,255 cubes3d 1
cup3d:
_resolution>0
درج شیء
فنجان
سهبعدی.
مقدار
پیشفرض:
'resolution=128'.
مثال:
[#1] cup3d ,
curve3d:
_"x(t)",_"y(t)",_"z(t)",_"r(t)",_resolution>1,_tmin,_tmax,_nb_sides>=0,_cap_style={
0:Open | 1 |
Capped | 2 |
Closed }
درج منحنی
سهبعدی با
پارامترسازی
مشخصشده.
اگر 'r(t)==0' یا
'nb_sides<3' باشد،
شیء
سهبعدی
تولیدشده
فقط از
پارهخطها
تشکیل
میشود.
مقادیر
پیشفرض:
'x(t)=cos(2*pi*t)'، 'y(t)=sin(2*pi*t)'،
'z(t)=t'، 'r(t)=0.025'،
'resolution=128'، 'tmin=0'،
'tmax=1'، 'nb_sides=16' و
'cap_style=1'.
مثال:
[#1] curve3d ,
cylinder3d:
_radius,_height,_nb_subdivisions>0
درج
استوانه
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مقدار
پیشفرض:
'radius=1'، 'height=1' و
'nb_subdivisions=24'.
مثال:
[#1] cylinder3d 10,40 +primitives3d 1 color3d[-2] ${-rgb}
delaunay3d:
تولید
مثلثبندیهای
سهبعدی
دلونی (Delaunay) از
تصاویر
انتخابشده.
فرض میشود
که تصاویر
ورودی
انتخابشده
تصاویر
دودویی
حاوی
مجموعه
نقاطی
هستند که
باید
مشبندی
شوند.
شیء
سهبعدی
خروجی یک مش
متشکل از
مثلثهای
بدون جهت
است.
مثال:
[#1] 500,500 noise 0.05,2 eq 1 * 255 +delaunay3d color3d[1] 255,128,0
dilate_circ[0] 5 to_rgb[0] +object3d[0] [1],0,0,0,1,1 max[-1] [0]
depthmap3d:
[object3d],_x[%],_y[%],_z_,is_double_sided={ 0:No | 1:Yes },_is_zbuffer={
0:No | 1:Yes },_focal
رسم نقشه
عمقِ شیء
سهبعدی
مشخصشده
بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'x=y=50%'، 'z=0' و 'is_zbuffer=1'.
تمام
آرگومانهای
دیگر
مقادیر
پیشفرض
خود را از
متغیرهای
محیطی
سهبعدی
میگیرند.
مثال:
[#1] gmic3d center3d normalize3d rotate3d 0,1,0,45 mul3d 360 400,400
depthmap3d[-1] [-2] snapshot3d[-2] 400
distribution3d:
دریافت
توزیع رنگ
سهبعدی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg distribution3d colorcube3d primitives3d[-1] 1 add3d
/3d (+):
میانبری
برای دستور
'div3d'.
div3d (+):
factor |
factor_x,factor_y,_factor_z
مقیاسبندی
همسانگرد
یا
ناهمسانگرد
اشیاء
سهبعدی
انتخابشده،
با معکوس
ضرایب
مشخصشده.
(معادل
دستور
میانبر '/3d').
مقدار
پیشفرض:
'factor_z=1'.
مثال:
[#1] torus3d 5,2 repeat 5 { +add3d[-1] 12,0,0 div3d[-1] 1.2 color3d[-1]
${-rgb} } add3ddb3d:
میانبری
برای دستور
'double3d'.
double3d:
_is_double_sided={ 0:No | 1:Yes }
فعال/غیرفعالسازی
حالت
دوطرفه
برای
رندرینگ
سهبعدی.
(معادل
دستور
میانبر 'db3d').
مقدار
پیشفرض:
'is_double_sided=1'.
مثال:
[#1] mode3d 1 repeat 2 { torus3d 100,30 rotate3d[-1] 1,1,0,60 double3d $>
snapshot3d[-1] 400 }
elevation3d:
{ z-factor | [elevation_map] | 'formula' },base_height={ -1 | >=0 } |
(no arg)
تولید
برجستگی
سهبعدی از
تصاویر
انتخابشده،
بهطور
اختیاری با
یک نقشه
برجستگی
مشخص.
هنگامی که
با (no arg) یا 'z-factor'
فراخوانی
شود، نقشه
برجستگی به
عنوان نُرم L2
نقطهای از
مقادیر
پیکسلها
محاسبه
میشود. در
غیر این
صورت، نقشه
برجستگی از
تصویر یا
فرمول
مشخصشده
گرفته
میشود.
مثال:
[#1] image.jpg +blur 5 elevation3d. 0.75
[#2] 128,128,1,3,u(255) plasma 10,3 blur 4 sharpen 10000 n 0,255
elevation3d[-1]
'X=(x-64)/6;Y=(y-64)/6;-100*exp(-(X^2+Y^2)/30)*abs(cos(X)*sin(Y))
'
empty3d:
ورود شیء
سهبعدی
خالی.
مثال:
[#1] empty3d
extract_textures3d:
استخراج
دادههای
بافت از
اشیاء
سهبعدی
انتخابشده.
مثال:
[#1] image.jpg imagesphere3d 10,10 +extract_textures3d
extrude3d:
_depth>0,_resolution>0,_smoothness[%]>=0
تولید شیء
سهبعدی
برآمده
(اکسترودشده)
از
پروفایلهای
دودویی XY
انتخابشده.
مقادیر
پیشفرض:
'depth=16'، 'resolution=1024' و
'smoothness=0.5%'.
مثال:
[#1] image.jpg threshold 50% extrude3d 16
f3d:
میانبری
برای دستور
'focal3d'.
focal3d:
focal
تنظیم
فاصله
کانونی
سهبعدی.
(معادل
دستور
میانبر 'f3d').
تنظیم 'focal'
روی 0
تصویرسازی
موازی را
فعال
میکند (به
جای
پرسپکتیو).
تنظیم
مقدار منفی
برای 'focal'،
بزرگنمایی
اسپریتهای
سهبعدی را
غیرفعال
خواهد کرد.
مقدار
پیشفرض:
'focal=700'.
مثال:
[#1] repeat 5 { torus3d 100,30 rotate3d[-1] 1,1,0,60 focal3d {$<*90}
snapshot3d[-1] 400 } remove[0]
fov3d:
fov_angle>=0,_image_resolution>0
تنظیم
فاصله
کانونی
سهبعدی
برای تطابق
با زاویه
میدان دید
مشخصشده
(به درجه) جهت
رندر کردن
یک شیء
سهبعدی در
تصویری با
وضوح مشخص.
مقدار
متناظر
فاصله
کانونی را
در وضعیت
بازمیگرداند.
مقدار
پیشفرض:
'fov_angle=45' و 'image_size=max(w,h)'
(بزرگترین
اندازه
آخرین
تصویر).
gaussians3d:
_size>0,0<=_opacity<=1
تبدیل
اشیاء
سهبعدی
انتخابشده
به
مجموعهای
از
اسپریتهای
سهبعدی با
شکل گاوسی.
مثال:
[#1] image.jpg rescale2d ,32 distribution3d gaussians3d 20 colorcube3d
primitives3d[-1] 1 +3d
gmic3d:
ورود
نشانواره
سهبعدی G'MIC.
مثال:
[#1] gmic3d +primitives3d 1
gyroid3d:
_resolution>0,_zoom
ورود
ژیروئید
سهبعدی در
(0,0,0)، با وضوح
مشخصشده.
مقادیر
پیشفرض:
'resolution=32' و 'zoom=5'.
مثال:
[#1] gyroid3d 48 +primitives3d 1
histogram3d:
دریافت
هیستوگرام
رنگی
سهبعدی از
تصاویر
انتخابشده.
مثال:
[#1] image.jpg rescale2d 64 histogram3d circles3d 3 opacity3d. 0.75
colorcube3d primitives3d[-1] 1 add3d
image6cube3d:
تولید
مکعبهای
نگاشتهشدهٔ
سهبعدی از
دستههای
۶تایی
تصاویر
انتخابشده.
مثال:
[#1] image.jpg animate flower,"30,0","30,5",6
image6cube3d
imageblocks3d:
_maximum_elevation,_smoothness[%]>=0
تولید
بلوکهای
سهبعدی از
تصاویر
انتخابشده.
شفافیت
تصاویر
انتخابشده
در نظر
گرفته
میشود.
مقادیر
پیشفرض:
'maximum_elevation=10' و 'smoothness=0'.
مثال:
[#1] image.jpg rescale2d ,32 imageblocks3d -20 mode3d 3
imagecube3d:
تولید
مکعبهای
نگاشتهشدهٔ
سهبعدی از
تصاویر
انتخابشده.
مثال:
[#1] image.jpg imagecube3d
imageplane3d:
تولید
صفحههای
نگاشتهشدهٔ
سهبعدی از
تصاویر
انتخابشده.
مثال:
[#1] image.jpg imageplane3d
imagepyramid3d:
تولید
هرمهای
نگاشتهشدهٔ
سهبعدی از
تصاویر
انتخابشده.
مثال:
[#1] image.jpg imagepyramid3d
imagerubik3d:
_xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100
تولید
مکعبهای
روبیک
نگاشتهشدهٔ
سهبعدی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'xy_tiles=3'، 'xy_shift=5' و
'z_shift=5'.
مثال:
[#1] image.jpg imagerubik3d ,
imagesphere3d:
_resolution1>=3,_resolution2>=3
تولید کرهٔ
نگاشتهشدهٔ
سهبعدی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'resolution1=32' و 'resolutions2=16'.
مثال:
[#1] image.jpg imagesphere3d 32,16
isoline3d (+):
isovalue[%] |
'formula',value,_x0,_y0,_x1,_y1,_size_x[%]>0,_size_y[%]>0
استخراج
همخطهای
سهبعدی با
مقدار
مشخصشده
از تصاویر
انتخابشده
یا از فرمول
مشخصشده.
مقادیر
پیشفرض:
'x0=y0=-3'، 'x1=y1=3' و
'size_x=size_y=256'.
مثال:
[#1] image.jpg blur 1 isoline3d 50%
[#2] isoline3d 'X=x-w/2;Y=y-h/2;(X^2+Y^2)%20',10,-10,-10,10,10
isosurface3d (+):
isovalue[%] |
'formula',value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x[%]>0,_size_y[%]>0,_size_z[%]>0
استخراج
همسطحهای
سهبعدی با
مقدار
مشخصشده
از تصاویر
انتخابشده
یا از فرمول
مشخصشده.
مقادیر
پیشفرض:
'x0=y0=z0=-3'، 'x1=y1=z1=3' و
'size_x=size_y=size_z=32'.
مثال:
[#1] image.jpg rescale2d ,128 luminance threshold 50% expand z,2 blur 1
isosurface3d 50% mul3d 1,1,30
[#2] isosurface3d 'x^2+y^2+abs(z)^abs(4*cos(x*y*z*3))',3
label3d:
"text",font_height>=0,_opacity,_color1,...
تولید
برچسب متنی
سهبعدی.
مقادیر
پیشفرض:
'font_height=13'، 'opacity=1' و
'color=255,255,255'.
label_points3d:
_label_size>0,_opacity
افزودن
برچسب
شمارهدار
به تمامی
رأسهای
اشیاء
سهبعدی
انتخابشده.
مقادیر
پیشفرض:
'label_size=13' و 'opacity=0.8'.
مثال:
[#1] torus3d 100,40,6,6 label_points3d 23,1 mode3d 1
lathe3d:
_resolution>0,_smoothness[%]>=0,_max_angle>=0
تولید شیء
سهبعدی از
پروفایلهای
دودویی XY
انتخابشده.
مقادیر
پیشفرض:
'resolution=128'، 'smoothness=0.5%' و
'max_angle=361'.
مثال:
[#1] 300,300 rand -1,1 blur 40 sign normalize 0,255 lathe3d ,
l3d (+):
میانبری
برای دستور
'light3d'.
light3d (+):
position_x,position_y,position_z |
[texture] |
(no arg)
تنظیم
مختصات نور
یا بافت نور
برای
رندرینگ
سهبعدی.
(معادل
دستور
میانبر 'l3d').
بدون
آرگومان (no arg)
نور
سهبعدی را
به مقدار
پیشفرض
بازنشانی
میکند.
مثال:
[#1] torus3d 100,30 specs3d 1.2 repeat 5 { light3d {$>*100},0,-300
+snapshot3d[0] 400 } remove[0]
line3d:
x0,y0,z0,x1,y1,z1
ورود خط
سهبعدی در
مختصات
مشخصشده.
مثال:
[#1] repeat 100 { a:=$>*pi/50 line3d 0,0,0,{cos(3*$a)},{sin(2*$a)},0
color3d. ${-rgb} } add3d
lines3d:
_length>=0
تبدیل
اشیاء
سهبعدی
مشخصشده
به
مجموعهای
از
پارهخطهای
افقی
سهبعدی با
طول مشخص.
مقدار
پیشفرض:
'length=1'.
مثال:
[#1] torus3d 100,40 +lines3d 20lissajous3d:
resolution>1,a,A,b,B,c,C
وارد کردن
منحنیهای
سهبعدی
لیساژو
'x(t)=sin(a*t+A*2*pi)'، 'y(t)=sin(b*t+B*2*pi)'،
'z(t)=sin(c*t+C*2*pi)'.
مقادیر
پیشفرض:
'resolution=1024'، 'a=2'، 'A=0'،
'b=1'، 'B=0'، 'c=0' و
'C=0'.
مثال:
[#1] lissajous3d ,
m3d:
میانبری
برای دستور
'mode3d'.
mode3d:
_mode
تنظیم حالت
رندر
سهبعدی
ایستا.
(معادل
دستور
میانبر 'm3d').
'mode'
میتواند {
-1:Bounding-box | 0:Dots | 1:Wireframe | 2:Flat | 3:Flat-shaded |
4:Gouraud-shaded | 5:Phong-shaded } باشد.
حالت جعبه
احاطهکننده
('mode==-1') تنها
برای
نمایشدهنده
سهبعدی
تعاملی
فعال است.
مقدار
پیشفرض:
'mode=4'.
مثال:
[#1] (0,1,2,3,4,5) repeat w { torus3d 100,30 rotate3d[-1] 1,1,0,60 mode3d
{0,@$>} snapshot3d[-1] 300 } remove[0]
md3d:
میانبری
برای دستور
'moded3d'.
moded3d:
_mode
تنظیم حالت
رندر
سهبعدی
پویا برای
نمایشدهنده
سهبعدی
تعاملی.
(معادل
دستور
میانبر 'md3d').
'mode'
میتواند {
-1:Bounding-box | 0:Dots | 1:Wireframe | 2:Flat | 3:Flat-shaded |
4:Gouraud-shaded | 5:Phong-shaded }
باشد.
مقدار
پیشفرض:
'mode=-1'.
*3d (+):
میانبری
برای دستور
'mul3d'.
mul3d (+):
factor |
factor_x,factor_y,_factor_z
مقیاسبندی
اشیاء
سهبعدی
انتخابشده
بهصورت
همسانگرد
یا
ناهمسانگرد،
با ضرایب
مشخصشده.
(معادل
دستور
میانبر '*3d').
مقدار
پیشفرض:
'factor_z=1'.
مثال:
[#1] torus3d 5,2 repeat 5 { +add3d[-1] 10,0,0 mul3d[-1] 1.2 color3d[-1]
${-rgb} } add3d
mt3d:
میانبری
برای دستور
'multithreaded3d'.
multithreaded3d:
_is_multi_threaded_rendering={ 0:No | 1:Yes }
فعال/غیرفعال
کردن رندر
سهبعدی
چندرشتهای.
(معادل
دستور
میانبر 'mt3d').
مقدار
پیشفرض:
'is_multithreaded_rendering=0'.
n3d:
میانبری
برای دستور
'normalize3d'.
normalize3d:
نرمالسازی
اشیاء
سهبعدی
انتخابشده
به اندازه
واحد.
(معادل
دستور
میانبر 'n3d').
مثال:
[#1] repeat 100 { circle3d {u(3)},{u(3)},{u(3)},0.1 } add3d color3d[-1]
255,0,0 +normalize3d[-1] color3d[-1] 0,255,0 add3d
normalmap3d:
[object3d],_x[%],_y[%],_z_,is_double_sided={ 0:No | 1:Yes },_is_zbuffer={
0:No | 1:Yes },_focal
رسم نگاشت
نرمال شیء
سهبعدی
مشخصشده
بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'x=y=50%'، 'z=0' و 'is_zbuffer=1'.
تمام
آرگومانهای
دیگر
مقادیر
پیشفرض
خود را از
متغیرهای
محیطی
سهبعدی
دریافت
میکنند.
مثال:
[#1] gmic3d center3d normalize3d rotate3d 0,1,0,45 mul3d 360 400,400,1,3
normalmap3d[-1] [-2] snapshot3d[-2] 400
normals3d:
output_mode={ 0:vertices | 1:primitives | 2:vertices+primitives }.
تخمین
بردار
نرمال
مشهای
سهبعدی
انتخابشده،
برای
رأسها،
اشکال
اولیه یا هر
دو.
این دستور
یکی از دو
تصویر
دارای ۶
کانال را
برمیگرداند:
[ x,y,z,u,v,w ]، که در آن
(x,y,z) مبدأ
بردار
نرمال، و (u,v,z)
بردار
نرمال یکه
است.
مقدار
پیشفرض:
'mode=2'.
o3d:
میانبری
برای دستور
'opacity3d'.
j3d (+):
میانبری
برای دستور
'object3d'.
object3d (+):
[object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double_sided={ 0:No |
1:Yes },_is_zbuffer={ 0:No | 1:Yes },_focal,_light_x,_light_y,_light_z,
_specular_lightness,_specular_shininess,_is_multithreaded_rendering={ 0:No |
1:Yes }
رسم شیء
سهبعدی
مشخصشده
بر روی
تصاویر
انتخابشده.
(معادل
دستور
میانبر 'j3d').
'rendering_mode'
میتواند { 0:Dots
| 1:Wireframe | 2:Flat | 3:Flat-shaded | 4:Gouraud-shaded | 5:Phong-shaded
} باشد.
مقادیر
پیشفرض:
'x=y=50%'، 'z=0'، 'opacity=1' و
'is_zbuffer=1'. تمام
آرگومانهای
دیگر
مقادیر
پیشفرض
خود را از
متغیرهای
محیطی
سهبعدی
دریافت
میکنند.
مثال:
[#1] image.jpg torus3d 100,10 cone3d 30,-120 add3d[-2,-1] rotate3d. 1,1,0,60
object3d[0] [-1],50%,50% keep[0]
opacity3d:
opacity
تنظیم
میزان کدر
بودن
(شفافیت)
اشیاء
سهبعدی
انتخابشده.
(معادل
دستور
میانبر 'o3d').
مثال:
[#1] torus3d 100,10 repeat 7 { +rotate3d[-1] 1,0,0,20 opacity3d[-1] {u} }
add3d
parametric3d:
_x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_isovalue>=0
وارد کردن
شیء
سهبعدی از
رویه
پارامتری
مشخصشدهٔ
'(a,b) ⟶ (x(a,b),y(a,b),z(a,b))'.
مقادیر
پیشفرض:
'x=(2+cos(b))*sin(a)'، 'y=(2+cos(b))*cos(a)'،
'c=sin(b)'، 'amin=-pi'، 'amax=pi'،
'bmin=-pi'، 'bmax=pi'، 'res_a=512'،
'res_b=res_a'، 'res_x=64'،
'res_y=res_x'، 'res_z=res_y'،
'smoothness=2%' و 'isovalue=10%'.
مثال:
[#1] parametric3d ,
pca_patch3d:
_patch_size>0,_M>0,_N>0,_normalize_input={ 0:No | 1:Yes
},_normalize_output={ 0:No | 1:Yes },_lambda_xy
دریافت
بازنمایی
سهبعدی patch-pca
از تصاویر
انتخابشده.
نگاشت
سهبعدی patch-pca
از M پچ روی
تصویر
ورودی
تخمین زده
میشود و
بهصورت
ابری از N
نقطه
سهبعدی
نمایش داده
میشود.
مقادیر
پیشفرض:
'patch_size=7'، 'M=1000'،
'N=3000'، 'normalize_input=1'،
'normalize_output=0' و
'lambda_xy=0'.
مثال:
[#1] image.jpg pca_patch3d 7
plane3d:
_size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0
وارد کردن
صفحه
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مقادیر
پیشفرض:
'size_x=1'، 'size_y=size_x' و
'nb_subdivisions_x=nb_subdivisions_y=24'.
مثال:
[#1] plane3d 50,30 +primitives3d 1 color3d[-2] ${-rgb}
point3d:
x0,y0,z0
وارد کردن
نقطه
سهبعدی در
مختصات
مشخصشده.
مثال:
[#1] repeat 1000 { a:=$>*pi/500 point3d {cos(3*$a)},{sin(2*$a)},0
color3d[-1] ${-rgb} } add3d
pointcloud3d:
تبدیل
تصاویر
صفحهای یا
حجمی
انتخابشده
به ابرهای
نقطه
سهبعدی.
مثال:
[#1] image.jpg luminance rescale2d ,100 threshold 50% mul 255 pointcloud3d
color3d[-1] 255,255,255
pose3d:
p1,...,p12
اعمال
ماتریس
وضعیت (pose)
سهبعدی بر
روی اشیاء
سهبعدی
انتخابشده.
مثال:
[#1] torus3d 100,20 pose3d
0.152437,1.20666,-0.546366,0,-0.535962,0.559129,1.08531,0,1.21132,0.0955431,0.548966,0,0,0,-206,1
snapshot3d 400
p3d:
میانبری
برای دستور
'primitives3d'.
primitives3d:
mode
تبدیل
اشکال
اولیه (primitives) در
اشیاء
سهبعدی
انتخابشده.
(معادل
دستور
میانبر 'p3d').
'mode'
میتواند {
0:Points | 1:Outlines | 2:Non-textured }
باشد.
مثال:
[#1] sphere3d 30 primitives3d 1 torus3d 50,10 color3d[-1] ${-rgb} add3d
projections3d:
_x[%],_y[%],_z[%],_is_bounding_box={ 0:No | 1:Yes },nb_subdivisions>0
تولید
صفحات
تصویر
سهبعدی xy،
xz، yz از
تصاویر
حجمی
مشخصشده.
مقادیر
پیشفرض:
'x=y=z=50%'، 'is_bounding_box=1' و
'nb_subdividions=5'.
pyramid3d:
width,height
وارد کردن
هرم
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مثال:
[#1] pyramid3d 100,-100 +primitives3d 1 color3d[-2] ${-rgb}
quadrangle3d:
x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3
وارد کردن
چهارضلعی
سهبعدی در
مختصات
مشخصشده.
مثال:
[#1] quadrangle3d -10,-10,10,10,-10,10,10,10,10,-10,10,10 repeat 10 {
+rotate3d[-1] 0,1,0,30 color3d[-1] ${-rgb},0.6 } add3d mode3d 2
random3d:
nb_points>=0
وارد کردن
ابر نقطه
سهبعدی
تصادفی در
[0,1]^3.
مثال:
[#1] random3d 100 circles3d 0.1 opacity3d 0.5
rv3d:
میانبری
برای دستور
'reverse3d'.
reverse3d:
معکوس کردن
جهتگیری
اشکال
اولیه (primitives) در
اشیاء
سهبعدی
انتخابشده.
(معادل
دستور
میانبر 'rv3d').
مثال:
[#1] torus3d 100,40 +reverse3d
r3d (+):
میانبری
برای دستور
'rotate3d'.
rotate3d (+):
u,v,w,angle
چرخش اشیاء
سهبعدی
انتخابشده
حول محور
مشخصشده
با زاویه
مشخصشده
(به درجه).
(معادل
دستور
میانبر 'r3d').
مثال:
[#1] torus3d 100,10 repeat 7 { +rotate3d[-1] 1,0,0,20 }
add3drotation3d:
u,v,w,angle
وارد کردن
ماتریس
دوران 3x3 با
محور و
زاویه
مشخصشده
(به درجه).
مثال:
[#1] rotation3d 1,0,0,0 rotation3d 1,0,0,90 rotation3d 1,0,0,180
sierpinski3d:
_recursion_level>=0,_width,_height
وارد کردن
هرم
سهبعدی
سیرپینسکی.
مقادیر
پیشفرض:
'recursion_level=4'، 'width=1' و
'height=1'.
مثال:
[#1] sierpinski3d 3,100,-100 +primitives3d 1 color3d[-2] ${-rgb}
size3d:
بازگرداندن
اندازه
جعبه محاطی
آخرین شیء
سهبعدی
انتخابشده.
skeleton3d:
_metric,_frame_type={ 0:Squares | 1:Diamonds | 2:Circles | 3:Auto
},_skeleton_opacity,_frame_opacity,_is_frame_wireframe={ 0:No | 1:Yes }
ساخت شیء
ساختار
اسکلتی
سهبعدی از
اشکال
باینری
دوبعدی
موجود در
تصاویر
انتخابشده.
'metric'
میتواند {
0:Chebyshev | 1:Manhattan | 2:Euclidean }
باشد.
مقادیر
پیشفرض:
'metric=2'، 'frame_type=3'،
'skeleton_opacity=1' و 'frame_opacity=0.1'.
مثال:
[#1] shape_cupid 480 +skeleton3d ,
snapshot3d:
_size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB,_backgroundA,_fov_angle>=0
|
[background_image],zoom>=0,_fov_angle>=0
گرفتن
اسنپشاتهای
دوبعدی از
اشیاء
سهبعدی
انتخابشده.
مقدار 'zoom' را
برابر 0 قرار
دهید تا
مقیاسبندی
خودکار شیء
غیرفعال
شود.
مقادیر
پیشفرض:
'size=1024'، 'zoom=1'،
'[background_image]=(unused)' و 'fov_angle=45'.
مثال:
[#1] torus3d 100,20 rotate3d 1,1,0,60 snapshot3d 400,1.2,128,64,32
[#2] torus3d 100,20 rotate3d 1,1,0,60 sample ? +snapshot3d[0] [1],1.2
sl3d:
میانبری
برای دستور
'specl3d'.
specl3d:
value>=0
تنظیم
روشنایی
نور
بازتابی (specular)
سهبعدی.
(معادل
دستور
میانبر 'sl3d').
مقدار
پیشفرض:
'value=0.25'.
مثال:
[#1] (0,0.3,0.6,0.9,1.2) repeat w { torus3d 100,30 rotate3d[-1] 1,1,0,60
color3d[-1] 255,0,0 specl3d {0,@$>} snapshot3d[-1] 400 } remove[0]
ss3d:
Shortcut for command 'specs3d'.
specs3d:
value>=0
تنظیم
درخشندگی (shininess)
نور
بازتابی
سهبعدی.
(معادل
دستور
میانبر 'ss3d').
مقدار
پیشفرض:
'value=0.1'.
مثال:
[#1] (0,0.3,0.6,0.9,1.2) repeat w { torus3d 100,30 rotate3d[-1] 1,1,0,60
color3d[-1] 255,0,0 specs3d {0,@$>} snapshot3d[-1] 400 } remove[0]
sphere3d:
radius,_nb_recursions!=0 |
radius,_nb_phi>=3,_nb_theta>=3
وارد کردن
کره
سهبعدی در
(0,0,0) با هندسه
مشخصشده.
* اگر ۲
آرگومان
مشخص شده
باشد:
- اگر 'nb_recursions>0'
باشد، کره
با استفاده
از
تقسیمبندیهای
بازگشتی یک
icosahedron
(بیستوجهی)
تولید
میشود.
- اگر 'nb_recursions<0'
باشد، کره
با استفاده
از
تقسیمبندیهای
بازگشتی یک
cube (مکعب)
تولید
میشود.
* اگر ۳
آرگومان
مشخص شده
باشد، کره
با استفاده
از
گسستهسازی
مختصات
کروی تولید
میشود.
مقدار
پیشفرض:
'nb_recursions=3'.
مثال:
[#1] sphere3d 100 +primitives3d 1 color3d[-2] ${-rgb}
spherical3d:
"radius_function(phi,theta)",_nb_recursions!=0 |
"radius_function(phi,theta)",_nb_phi>=3,_nb_theta>=3
وارد کردن
شیء کروی
سهبعدی در
(0,0,0) با هندسه
مشخصشده.
آرگومانهای
دوم و سوم
همانند
دستور sphere3d
هستند.
مقادیر
پیشفرض:
'nb_recursions=5'.
مثال:
[#1] spherical3d "abs(1+0.5*cos(3*phi)*sin(4*theta))" +primitives3d
1
spline3d:
x0[%],y0[%],z0[%],u0[%],v0[%],w0[%],x1[%],y1[%],z1[%],u1[%],v1[%],w1[%],_nb_vertices>=2
وارد کردن
اسپلاین
سهبعدی با
هندسه
مشخصشده.
مقادیر
پیشفرض:
'nb_vertices=128'.
مثال:
[#1] repeat 100 { spline3d
{u},{u},{u},{u},{u},{u},{u},{u},{u},{u},{u},{u},128 color3d[-1] ${-rgb} }
box3d 1 primitives3d[-1] 1 add3d
s3d:
میانبری
برای دستور
'split3d'.
split3d:
تقسیم
اشیاء
سهبعدی
انتخابشده
به
بردارهای
ویژگی:
{ header, sizes, vertices, primitives, colors, opacities }.
(معادل
دستور
میانبر 's3d').
برای
بازسازی
شیء
سهبعدی،
تمام
تصاویر
تولیدشده
را در
امتداد
محور y ضمیمه
کنید (با
دستور 'append y').
مثال:
[#1] box3d 100 +split3d
sprite3d:
تبدیل
تصاویر
انتخابشده
به
اسپریتهای
سهبعدی.
تصاویر
انتخابشده
دارای
کانال آلفا
پشتیبانی
میشوند.
مثال:
[#1] image.jpg sprite3d
sprites3d:
[sprite],_sprite_has_alpha_channel={ 0:No | 1:Yes }
تبدیل
اشیاء
سهبعدی
انتخابشده
به یک ابر
اسپریت.
مقدار 'sprite_has_alpha_channel'
را برابر 1
قرار دهید
تا آخرین
کانال
اسپریت
انتخابشده
به عنوان
ماسک
شفافیت در
نظر گرفته
شود.
مقدار
پیشفرض:
'mask_has_alpha_channel=0'.
مثال:
[#1] torus3d 100,20 image.jpg rescale2d[-1] ,64 100%,100% gaussian[-1]
30%,30% *[-1] 255 append[-2,-1] c +sprites3d[0] [1],1 display_rgba[-2]
star3d:
_nb_branches>0,0<=_thickness<=1
وارد کردن
ستاره
سهبعدی در
موقعیت '(0,0,0)' با
هندسه
مشخصشده.
مقادیر
پیشفرض:
'nb_branches=5' و 'thickness=0.38'.
مثال:
[#1] star3d , +primitives3d 1 color3d[-2] ${-rgb}
streamline3d (+):
x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={ 0:No | 1:Yes
},_is_oriented={ 0:No | 1:Yes } |
'formula',x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={ 0:No | 1:Yes
},_is_oriented={ 0:No | 1:Yes }
استخراج
خطوط جریان
سهبعدی از
میدانهای
برداری
انتخابشده
یا از فرمول
مشخصشده.
'interpolation'
میتواند {
0:Nearest integer | 1:1st-order | 2:2nd-order | 3:4th-order }
باشد.
مقادیر
پیشفرض:
'dl=0.1'، 'interpolation=2'،
'is_backward=0' و 'is_oriented=0'.
مثال:
[#1] 100,100,100,3 rand -10,10 blur 3 repeat 300 { +streamline3d[0]
{u(100)},{u(100)},{u(100)},1000,1,1 color3d[-1] ${-rgb} } remove[0] box3d
100
primitives3d[-1] 1 add3d
-3d (+):
میانبری
برای دستور
'sub3d'.
sub3d (+):
tx,_ty,_tz
انتقال
اشیاء
سهبعدی
انتخابشده
در جهت
معکوس
بردار
جابهجایی
مشخصشده.
(معادل
دستور
میانبر '3d').
مقادیر
پیشفرض:
'ty=tz=0'.
مثال:
[#1] sphere3d 10 repeat 5 { +sub3d[-1] 10,{u(-10,10)},0 color3d[-1] ${-rgb} }
add3d
subdivide3d:
ریزتقسیم
عناصر
اولیه
اشیاء
سهبعدی
انتخابشده.
superformula3d:
resolution>1,m>=1,n1,n2,n3
وارد کردن
منحنی
اَبَرفرمول
دوبعدی به
عنوان یک
شیء
سهبعدی.
مقادیر
پیشفرض:
'resolution=1024'، 'm=8'، 'n1=1'،
'n2=5' و 'n3=8'.
مثال:
[#1] superformula3d ,
surfels3d:
0<=_left_right_attenuation<=1,0<=_top_bottom_attenuation<=1,0<=_closer_further_attenuation<=1
تبدیل
تصاویر
انتخابشده
به اشیاء
سهبعدی
متشکل از
سورفلهای
سهبعدی (یا
اجلهای
دوبعدی
برای
تصاویر
دوبعدی).
شکل باینری
از تمام
وکسلهای
غیرصفر
تشکیل شده
است.
شیء
سهبعدی
حاصل با
توجه به رنگ
وکسلهای
غیرصفر
رنگآمیزی
میشود.
مقادیر
پیشفرض:
'left_right_attenuation=1'، 'top_bottom_attenuation=1'
و 'closer_further_attenuation=1'.
مثال:
[#1] 100,100,100 = 1,40%,40%,40% = 1,60%,60%,60% distance 1 lt 30% blur 3 gt
50% surfels3d 0.5,0.75,1
tensors3d:
_radius_factor>=0,_shape={ 0:Box | >=N:Ellipsoid
},_radius_min>=0
تولید
میدانهای
تانسوری
سهبعدی از
تصاویر
انتخابشده.
هنگامی که
'shape'>0 باشد،
دقت شکل
بیضیگون
را تعیین
میکند.
مقادیر
پیشفرض:
'radius_factor=1'، 'shape=2' و
'radius_min=0.05'.
مثال:
[#1] 7,7,7,9,"U = unitnorm([x,y,z] - int([w,h,d]/2)); mul(U,U,3) +
0.3*eye(3)" tensors3d 0.8
text_pointcloud3d:
_"text1",_"text2",_smoothness
وارد کردن
ابرنقاط
متنی
سهبعدی از
دو رشته
مشخصشده.
مقادیر
پیشفرض:
'text1="text1"'، 'text2="text2"'
و 'smoothness=1'.
مثال:
[#1] text_pointcloud3d "G'MIC","Rocks!"
text3d:
text,_{ font_height>=0 | custom_font },_depth>0,_smoothness
وارد کردن
یک شیء متنی
سهبعدی از
متن
مشخصشده.
مقادیر
پیشفرض:
'font_height=53'، 'depth=10' و
'smoothness=1.5'.
مثال:
[#1] text3d "G'MIC as a0D logo!"
t3d:
میانبری
برای دستور
'texturize3d'.
texturize3d:
[ind_texture],_[ind_coords]
بافتدهی
به اشیاء
سهبعدی
انتخابشده
با بافت و
مختصات
مشخصشده.
(معادل
دستور
میانبر 't3d').
هنگامی که
'[ind_coords]' مشخص
نشود،
نگاشت
پیشفرض
بافت روی
صفحه XY اعمال
میشود.
مقدار
پیشفرض:
'ind_coords=(undefined)'.مثال:
[#1] image.jpg torus3d 100,30 texturize3d[-1] [-2] keep[-1]
torus3d:
_radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2
وارد کردن
توروس
سهبعدی در
(0,0,0)، با هندسه
مشخصشده.
مقادیر
پیشفرض:
'radius1=1'، 'radius2=0.3'،
'nb_subdivisions1=24' و 'nb_subdivisions2=12'.
مثال:
[#1] torus3d 10,3 +primitives3d 1 color3d[-2] ${-rgb}
triangle3d:
x0,y0,z0,x1,y1,z1,x2,y2,z2
وارد کردن
مثلث
سهبعدی در
مختصات
مشخصشده.
مثال:
[#1] repeat 100 { a:=$>*pi/50 triangle3d
0,0,0,0,0,3,{cos(3*$a)},{sin(2*$a)},0 color3d[-1] ${-rgb} } add3d
volume3d:
تبدیل
تصاویر
حجمی
سهبعدی
انتخابشده
به اشیاء
متوازیالسطوح
سهبعدی.
مثال:
[#1] image.jpg animate blur,0,5,30 append z volume3d
voxelize3d:
_max_resolution>0,_fill_interior={ 0:No | 1:Yes },_preserve_colors={ 0:No
| 1:Yes }
تبدیل
اشیاء
سهبعدی
انتخابشده
به تصاویر
حجمی
سهبعدی از
وکسلهای
باینری، با
استفاده از
رسترسازی
مش
سهبعدی.
مقادیر
پیشفرض:
'max_resolution=128'، 'fill_interior=1' و
'preserve_colors=0'.
weird3d:
_resolution>0
وارد کردن
شیء
سهبعدی
عجیب (weird object) در
(0,0,0)، با وضوح
مشخصشده.
مقدار
پیشفرض:
'resolution=32'.
مثال:
[#1] weird3d 48 +primitives3d 1 color3d[-2] ${-rgb}
11.13. کنترل
جریان (Flow Control)
-----------------------------
ap:
میانبری
برای دستور
'apply_parallel'.
apply_parallel:
"command"
اعمال
دستور
مشخصشده
روی هر یک از
تصاویر
انتخابشده،
با
موازیسازی
آن برای
تمامی
تصاویر
موجود در
فهرست.
(معادل
دستور
میانبر 'ap').
مثال:
[#1] image.jpg +mirror x +mirror y apply_parallel "blur 3"
apc:
میانبری
برای دستور
'apply_parallel_channels'.
apply_parallel_channels:
"command"
اعمال
دستور
مشخصشده
روی هر یک از
تصاویر
انتخابشده،
با
موازیسازی
مستقل آن
برای تمامی
کانالهای
تصاویر.
(معادل
دستور
میانبر 'apc').
مثال:
[#1] image.jpg apply_parallel_channels "blur 3"
apo:
میانبری
برای دستور
'apply_parallel_overlap'.
apply_parallel_overlap:
"command",overlap[%],nb_threads={ 0:Auto | 1 | 2 | 4 | 8 | 16 }
اعمال
دستور
مشخصشده
روی هر یک از
تصاویر
انتخابشده،
با
موازیسازی
آن روی 'nb_threads'
زیرتصویر
دارای
همپوشانی.
(معادل
دستور
میانبر 'apo').
'nb_threads' باید
توانی از ۲
باشد.
مقادیر
پیشفرض:
'overlap=0'، 'nb_threads=0'.
مثال:
[#1] image.jpg +apply_parallel_overlap "smooth 500,0,1",1
at:
میانبری
برای دستور
'apply_tiles'.
apply_tiles:
"command",_tile_width[%]>0,_tile_height[%]>0,_tile_depth[%]>0,_overlap_width[%]>=0,_overlap_height[%]>=0,_overlap_depth[%]>=0,_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
اعمال
دستور
مشخصشده
روی هر کاشی
(همسایگی) از
تصاویر
انتخابشده،
به صورت
اختیاری با
کاشیهای
همپوشان.
(معادل
دستور
میانبر 'at').
مقادیر
پیشفرض:
'tile_width=tile_height=tile_depth=10%'،
'overlap_width=overlap_height=overlap_depth=0' و
'boundary_conditions=1'.
مثال:
[#1] image.jpg +equalize[0] 256 +apply_tiles[0] "equalize
256",16,16,1,50%,50%
apply_timeout:
"command",_timeout={ 0:No timeout | >0:With specified timeout
(in seconds) }
اعمال یک
دستور با
مهلت زمانی
(timeout).
تنظیم
متغیر '$_is_timeout'
به '1' در
صورت اتمام
مهلت
زمانی، و '0'
در غیر این
صورت.
مقدار
پیشفرض:
'timeout=20'.
check (+):
condition
ارزیابی
شرط
مشخصشده و
نمایش پیام
خطا در صورت
نادرست (false)
بودن آن.
check3d (+):
_is_full_check={ 0:No | 1:Yes }
بررسی
اعتبار
اشیاء
برداری
سهبعدی
انتخابشده،
و نمایش
پیام خطا
اگر یکی از
تصاویر
انتخابشده
یک شیء
برداری
سهبعدی
معتبر
نباشد.
بررسی کامل
شیء
سهبعدی
کندتر اما
دقیقتر
است.
مقدار
پیشفرض:
'is_full_check=1'.
continue (+):
رفتن به
انتهای
بلوک جاری
'do...while'، 'for...done'،
'foreach...done'، 'local...done' یا
'repeat...done'.
مثال:
[#1] image.jpg repeat 10 blur 1 if 1==1 continue fi deform 10 done
break (+):
شکستن و
خروج از
بلوک جاری
'do...while'، 'for...done'،
'foreach...done'، 'local...done' یا
'repeat...done'.
مثال:
[#1] image.jpg repeat 10 blur 1 if 1==1 break fi deform 10 done
do (+):
آغاز یک
بلوک 'do...while'.
مثال:
[#1] image.jpg luminance i:=ia+2 do set 255,{u(100)}%,{u(100)}% while
ia<$i
done (+):
پایان یک
بلوک
'for/foreach/local/repeat...done'، و
بازگشت به
'for/foreach/repeat' مرتبط
در صورت
باقی ماندن
تکرارها.
(معادل
دستور
میانبر '}').
elif (+):
condition
آغاز یک
بلوک 'elif...[else]...fi'
در صورتی که
'if' قبلی
برقرار
نبوده باشد
و بررسی
برقراری
شرط
مشخصشده
'condition' یک عبارت
ریاضی است،
که ارزیابی
آن به صورت {
0:False | other:True } تفسیر
میشود.
آموزش:
https://gmic.eu/tutorial/iffi
else (+):
اجرای
دستورهای
بعدی در
صورت
برقرار
نبودن
شرایط 'if' یا
'elif' قبلی.
آموزش:
https://gmic.eu/tutorial/iffi
fi (+):
پایان یک
بلوک 'if...[elif]...[else]...fi'.
(معادل
دستور
میانبر 'fi').
آموزش:
https://gmic.eu/tutorial/iffi
error (+):
message
چاپ پیام
خطای
مشخصشده
در خروجی
خطای
استاندارد
(stderr) و خروج از
مفسر، مگر
اینکه خطا
توسط دستور
'onfail' دریافت و
مدیریت شود.
انتخاب
دستور (در
صورت وجود)
به جای
نمایههای
تصویر،
بیانگر
زیرمجموعهای
از پشته
فراخوانی
نمایشدادهشده
است.
eval (+):
expression
ارزیابی
عبارت
ریاضی
مشخصشده.
* اگر هیچ
انتخابی از
تصاویر
مشخص نشده
باشد،
عبارت تنها
یک بار
ارزیابی
شده و نتیجه
آن در وضعیت
(status) قرار
میگیرد.
* اگر
انتخابی از
تصاویر
مشخص شده
باشد،
عبارت برای
تمامی
مقادیر
پیکسلهای
تصاویر
انتخابشده
ارزیابی
میشود.
وضعیت بدون
تغییر
میماند. در
این حالت،
'eval' مشابه fill
است بدون
آنکه
مقادیر
تصویر
تخصیص داده
شوند.
x (+):
میانبری
برای دستور
'exec'.
exec (+):
_is_verbose={ 0:No | 1:Yes },"command"
اجرای
دستور
خارجی با
استفاده از
فراخوانی
سیستمی (system call).
سپس مقدار
وضعیت (status) با
کد خطای
بازگرداندهشده
از
فراخوانی
سیستمی
مقداردهی
میشود.
اگر 'is_verbose=1'
باشد،
دستور
اجراشده
اجازه دارد
در stdout/stderr خروجی
تولید کند.
(معادل
دستور
میانبر 'x').
مقدار
پیشفرض:
'is_verbose=1'.
xo:
میانبری
برای دستور
'exec_out'.
exec_out:
_mode,"command"
اجرای
دستور
خارجی با
استفاده از
فراخوانی
سیستمی، و
بازگرداندن
'stdout' و/یا 'stderr'
حاصل.
'mode'
میتواند {
0:Stdout | 1:Stderr | 2:Stdout+stderr }
باشد.
for (+):
condition
آغاز یک
بلوک 'for...done'.
مثال:
[#1] image.jpg rescale2d ,32 400,400,1,3 x=0 for $x<400 image[1] [0],$x,$x
x+=40 done
foreach (+):
آغاز یک
بلوک 'foreach...done'،
که روی
تمامی
تصاویر
انتخاب
تکرار
میشود،
همراه با یک
محیط محلی
جداگانه
برای هر یک.
مثال:
[#1] sample colorful,earth,duck,dog foreach[^2] +blur 10 sub normalize 0,255
done
if (+):
condition
آغاز یک
بلوک 'if...[elif]...[else]...fi' و
بررسی
برقراری
شرط
مشخصشده.
'condition' یک عبارت
ریاضی است،
که ارزیابی
آن به صورت {
0:False | other:True } تفسیر
میشود.
مثال:
[#1] image.jpg if ia<64 add 50% elif ia<128 add 25% elif ia<192 sub
25% else sub 50% fi cut 0,255
آموزش:
https://gmic.eu/tutorial/iffi
l (+):
میانبری
برای دستور
'local'.
local (+):
آغاز یک
بلوک 'local...[onfail]...done'،
با تصاویر
انتخابشده.
(معادل
دستور
میانبر 'l').
مثال:
[#1] image.jpg local[] 300,300,1,3 rand[0] 0,255 blur 4 sharpen 1000 done
[#2] image.jpg +local repeat 3 { deform 20 }
doneآموزش:
https://gmic.eu/oldtutorial/_local
noarg (+):
هنگامی که
در یک دستور
سفارشی
استفاده
شود، 'noarg' به
دستور
اعلام
میکند که
فهرست
آرگومانهای
آن در نهایت
استفاده
نشده است،
و بنابراین
باید در
ادامه در خط
لولهٔ G'MIC
ارزیابی
شوند، درست
مانند
اینکه
دستور
سفارشی
اصلاً هیچ
آرگومانی
نمیپذیرد.
از این
دستور برای
نوشتن
دستورهای
سفارشی
استفاده
کنید که
میتوانند
دربارهٔ
پذیرفتن یا
نپذیرفتن
آرگومانها
تصمیم
بگیرند.
onfail (+):
اجرای
دستورهای
بعدی
هنگامی که
در بدنهٔ
بلوک 'local...done'
خطایی رخ
دهد.
مقدار
وضعیت با
پیام خطای
متناظر
تنظیم
میشود.
مثال:
[#1] image.jpg +local blur -3 onfail mirror x done
parallel (+):
_wait_threads,"command_1","command_2",...
اجرای
موازی
دستورهای
مشخصشده،
هرکدام در
یک ریسهٔ
جداگانه.
ریسههای
موازی
فهرست
تصاویر را
به اشتراک
میگذارند.
'wait_threads'
میتواند { 0:When
current environment ends | 1:Immediately }
باشد.
مقدار
پیشفرض:
'wait_threads=1'.
مثال:
[#1] image.jpg [0] parallel "blur[0] 3","mirror[1] c"
progress (+):
0<=value<=100 |
-1
تنظیم شاخص
پیشرفت خط
لولهٔ
پردازشی
جاری.
این دستور
تنها زمانی
مفید است که
G'MIC توسط یک
برنامهٔ
تعبیهکننده
استفاده
شود.
q (+):
میانبری
برای دستور
'quit'.
quit (+):
خروج از
مفسر G'MIC.
(معادل
دستور
میانبر 'q').
repeat (+):
nb_iterations
آغاز 'nb_iterations'
تکرار از یک
بلوک 'repeat...done'.
'nb_iterations' یک
عبارت
ریاضی است
که ارزیابی
خواهد شد.
مثال:
[#1] image.jpg split y repeat $! n=$> shift[$n] $<,0,0,0,2 done append
y
[#2] image.jpg mode3d 2 repeat 4 imagecube3d rotate3d 1,1,0,40 snapshot3d
400,1.4 done
آموزش:
https://gmic.eu/oldtutorial/_repeat
return (+):
بازگشت از
دستور
سفارشی
جاری.
rprogress:
0<=value<=100 | -1 |
"command",0<=value_min<=100,0<=value_max<=100
تنظیم شاخص
پیشرفت خط
لولهٔ
پردازشی
جاری
(بهصورت
نسبی نسبت
به
حدود
پیشرفت
تعریفشدهٔ
قبلی)، یا
فراخوانی
دستور
مشخصشده
با
حدود
پیشرفت
تعیینشده.
run:
"G'MIC pipeline"
اجرای خط
لولهٔ G'MIC
مشخصشده.
skip (+):
item
هیچ کاری
انجام
نمیدهد جز
نادیده
گرفتن مورد
مشخصشده.
u (+):
میانبری
برای دستور
'status'.
status (+):
status_string
تنظیم
وضعیت جاری.
برای تعریف
مقدار
بازگشتی از
یک تابع
استفاده
میشود.
(معادل
دستور
میانبر 'u').
مثال:
[#1] image.jpg command "foo : u0=Dark u1=Bright status
${u{ia>=128}}" text_outline ${-foo},2,2,23,2,1,255
while (+):
condition
پایان دادن
به یک بلوک
'do...while' و
بازگشت به
'do' متناظر
در صورت
برقرار
بودن شرط
مشخصشده.
'condition' یک عبارت
ریاضی است
که ارزیابی
آن بهصورت
{ 0:False | other:True } تفسیر
میشود.
11.14.
شبکههای
عصبی (Neural Networks)
-------------------------------------
nn_lib ::
تعریف
توابع
ریاضی که
هنگام
استفاده از
'nn_lib'،
کتابخانهٔ
شبکهٔ عصبی
G'MIC، باید در
یک عبارت
ریاضی
گنجانده
شوند. این
دستور
متغیر
رشتهای '$_nn_lib'
را
مقداردهی
کرده و
محتوای آن
را
بازمیگرداند.
nn_add:
out,in0,in1,_in2,_in3
افزودن یک
لایهٔ 'add'
(جمع
عنصربهعنصر)
به شبکهٔ
جاری.
آرگومانهای
'in_k'
میتوانند
نامهای
لایه یا
مقادیر
ثابت باشند
(البته همگی
نمیتوانند
مقدار ثابت
باشند).
nn_append:
out,in0,in1,_in2,_in3,axis={ x | y | z | c }
افزودن یک
لایهٔ 'append' به
شبکهٔ جاری.
تمام
لایههای
ورودی 'in_k'
باید ابعاد
یکسانی
داشته
باشند
(بهجز در
امتداد 'axis'
مشخصشده).
nn_check_layer:
layer_name
بررسی
اینکه
لایهای با
نام
مشخصشده
در شبکهٔ
جاری وجود
دارد یا
خیر.
nn_clone:
out0,out1,in
افزودن یک
لایهٔ 'clone' به
شبکهٔ
جاری.
nn_columnpatch2d:
out,in,out_width>0,out_height>0,patch_size>0,_overlap>0
افزودن یک
لایهٔ 'columnpatch2d'
(بازآرایی
ستونهای
ماتریس
بهصورت
وصلههای
تصویر) به
شبکهٔ
جاری.
مقادیر
پیشفرض:
'overlap=0'.
nn_conv:
out,in,nb_channels>0,_kernel_width>0,_kernel_height>0,_kernel_depth>0,_stride_x>0,_stride_y>0,_stride_z>0,_dilation_x,_dilation_y,_dilation_z,
_shrink_x>=0,_shrink_y>=0_,_shrink_z>=0,boundary_conditions,_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'conv'
(لایهٔ
پیچشی
عمومی
۱بعدی/۲بعدی/۳بعدی)
به شبکهٔ
جاری.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'learning_mode'
میتواند { 0:No
learning | 1:Weights only | 2:Biases only | 3:Weights+biases }
باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization | 4:Residual
He-initialization } باشد.
مقادیر
پیشفرض:
'stride_x=stride_y=stride_z=1'،
'dilation_x=dilation_y=dilation_z=1'،
'shrink_x=shrink_y=shrink_z=0'،
'boundary_conditions=1'، 'learning_mode=3'،
'weight_decay=0' و 'initialization=3'.
nn_conv2d:
out,in,nb_channels>0,_kernel_size>0,_stride>0,_dilation,_shrink>=0,_boundary_conditions,_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'conv2d'
(لایهٔ
پیچشی
۲بعدی) به
شبکهٔ جاری.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'learning_mode'
میتواند { 0:No
learning | 1:Weights only | 2:Biases only | 3:Weights+biases }
باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization | 4:Residual
He-initialization } باشد.
مقادیر
پیشفرض:
'kernel_size=3'، 'stride=1'،
'dilation=1'، 'shrink=0'،
'boundary_conditions=1'،
'learning_mode=3'، 'weight_decay=0' و
'initialization=3'.
nn_conv3d:
out,in,nb_channels>0,_kernel_size>0,_stride>0,_dilation,_shrink>=0,_boundary_conditions,_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'conv3d'
(لایهٔ
پیچشی
۳بعدی) به
شبکهٔ جاری.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
'learning_mode'
میتواند { 0:No
learning | 1:Weights only | 2:Biases only | 3:Weights+biases }
باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization | 4:Residual
He-initialization } باشد.
مقادیر
پیشفرض:
'kernel_size=3'، 'stride=1'،
'dilation=1'، 'shrink=0'،
'boundary_conditions=1'،
'learning_mode=3'، 'weight_decay=0' و
'initialization=3'.
nn_crop:
out,in,x0,y0,z0,c0,x1,y1,z1,c1,_boundary_conditions
افزودن یک
لایهٔ 'crop' به
شبکهٔ جاری.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقدار
پیشفرض:
'boundary_conditions=0'.
nn_div:
out,in0,in1
افزودن یک
لایهٔ 'div'
(تقسیم
عنصربهعنصر)
به شبکهٔ
جاری.
'in0' یا 'in1'
میتوانند
نامهای
لایه یا
مقادیر
ثابت باشند
(البته هردو
نمیتوانند
مقدار ثابت
باشند).
nn_dropout:
out,in,0<=dropout_rate<1
افزودن یک
لایهٔ 'dropout' به
شبکهٔ
جاری.
nn_fc:
out,in,nb_channels>0,_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'fc'
(لایهٔ
کاملاً
متصل) به
شبکهٔ جاری.
'learning_mode'
میتواند { 0:No
learning | 1:Weights only | 2:Biases only | 3:Weights+biases }
باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization 4:Residual
He-initialization } باشد.
مقدار
پیشفرض:
'learning_mode=3'، 'weight_decay=0' و
'initialization=3'.
nn_fft:
out,in,io_mode,_is_inverse={ 0:No | 1:Yes },_axes.
افزودن یک
لایهٔ 'fft'
(تبدیل
فوریه) به
شبکهٔ جاری.
آرگومان 'io_mode'
مفهوم
دادههای
ورودی/خروجی
را مشخص
میکند.
میتواند { 0:real
→ real | 1:(real,imag) → real | 2:real → (real,
imag) | 3:(real,imag) → (real,imag) }
باشد.
هنگام کار
با
دادههای
'(real,imag)'،
بخشهای
حقیقی و
موهومی
دادهها
(هرکدام با N
کانال) در یک
تصویر
2N-کاناله
ادغام
میشوند.
آرگومان 'axes'
میتواند { 0
(all) | x | y | z | xy | xz | yz | xyz }
باشد.
مقدار
پیشفرض:
'is_inverse=0'، 'axes=0 (all)'.
nn_init:
_network_name
مقداردهی
اولیهٔ
شبکهٔ جدید
با نام
مشخصشده،
و انتخاب آن
بهعنوان
شبکهٔ
جاری.
مقدار
پیشفرض:
'network_name=nn'.
nn_input:
out,width,_height,_depth,_spectrum
افزودن یک
'input' جدید به
شبکهٔ
جاری.
مقادیر
پیشفرض:
'height=1'، 'depth=1' و 'spectrum=1'.
nn_linear:
out,in,nb_channels>0,_axis={ x | y | z |
c},_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'linear' به
شبکهٔ جاری.
'learning_mode'
میتواند { 0:No
learning | 1:Weights only | 2:Biases only | 3:Weights+biases }
باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization 4:Residual
He-initialization } باشد.
مقدار
پیشفرض:
'learning_mode=3'، 'weight_decay=0' و
'initialization=3'.
nn_load:
'filename.gmz',_include_trainer_data={ 0:No | 1:Yes }
بارگذاری و
مقداردهی
اولیهٔ
شبکه
(ذخیرهشده
بهصورت یک
فایل .gmz).
فایلهای
شبکه تنها
در قالب '.gmz'
قابل
بارگذاری
هستند.
مقدار
پیشفرض:
'include_trainer_data=1'.
nn_loss_add:
out,in0,in1,...
افزودن یک
تابع زیان
'add' به شبکهٔ
جاری (مجموع
زیانها).
nn_loss_bce:
out,in,ground_truth,_weight
افزودن یک
تابع زیان
'bce' به شبکهٔ
جاری
(انتروپی
متقاطع
دودویی).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_ce:
out,in,ground_truth,_weightافزودن
یک تابع
زیان 'ce' به
شبکه فعلی
(انتروپی
متقاطع).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_l1:
out,in,_ground_truth,_weight
افزودن یک
تابع زیان
'l1' به شبکه
فعلی (نُرم L1).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_l2:
out,in,_ground_truth,_weight
افزودن یک
تابع زیان
'l2' به شبکه
فعلی (نُرم L2).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_lp:
out,in,_ground_truth,_p>0,_weight
افزودن یک
تابع زیان
'lp' به شبکه
فعلی (نُرم Lp).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض: 'p=1.5'
و 'weight=1'.
nn_loss_mse:
out,in,_ground_truth,_weight
افزودن یک
تابع زیان
'mse' به شبکه
فعلی
(میانگین
مربعات خطا).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_sigmoid_bce:
out,in,ground_truth,_weight
افزودن یک
تابع زیان
'sigmoid_bce' به شبکه
فعلی
(سیگموئید و
به دنبال آن
انتروپی
متقاطع
دودویی).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار آن
متناظر با
احتمال
مورد نظر
است
(بنابراین،
پس از
سیگموئید).
مقدار
پیشفرض:
'weight=1'.
nn_loss_smoothl1:
out,in,_ground_truth,_weight
افزودن یک
تابع زیان
'smoothl1' به شبکه
فعلی (نُرم L1
هموار).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_loss_softmax_ce:
out,in,ground_truth,_weight
افزودن یک
تابع زیان
'softmax_ce' به شبکه
فعلی
(سافتمکس و
به دنبال آن
انتروپی
متقاطع).
'ground_truth'
میتواند
نام خروجی
یک لایه یا
یک مقدار
اسکالر
باشد
(پیشفرض: 0).
مقدار
پیشفرض:
'weight=1'.
nn_maxpool2d:
out,in,_patch_size>1,_is_maxabs={ 0:No | 1:Yes }
افزودن یک
لایهٔ 'maxpool2d'
(بیشینهگیری
دوبُعدی) به
شبکه فعلی.
مقادیر
پیشفرض:
'patch_size=2' و 'is_maxabs=0'.
nn_maxpool3d:
out,in,_patch_size>1,_is_maxabs={ 0:No | 1:Yes }
افزودن یک
لایهٔ 'maxpool3d'
(بیشینهگیری
سهبُعدی)
به شبکه
فعلی.
مقادیر
پیشفرض:
'patch_size=2' و 'is_maxabs=0'.
nn_mmul:
out,in0,in1
افزودن یک
لایهٔ 'mmul'
(ضرب
ماتریسی 'in0*in1')
به شبکه
فعلی.
'in0' یا 'in1' باید
دارای
اندازهٔ
سازگار
باشند.
nn_mmult:
out,in0,in1
افزودن یک
لایهٔ 'mmult'
(ضرب
ماتریسی 'in0*in1^t')
به شبکه
فعلی.
'in0' یا 'in1' باید
دارای
اندازهٔ
سازگار
باشند.
nn_mul:
out,in0,in1,_in2,_in3
افزودن یک
لایهٔ 'mul'
(ضرب
درایهبهدرایه)
به شبکه
فعلی.
آرگومانهای
'in_k'
میتوانند
نامهای
لایه یا
مقادیر
ثابت باشند
(البته همگی
نمیتوانند
مقدار ثابت
باشند).
nn_network:
_network_name
دریافت/تنظیم
نام شبکهٔ
فعلی (و
مقداردهی
اولیهٔ
شبکه در
صورتی که از
قبل وجود
نداشته
باشد).
این دستور
نام شبکهٔ
انتخابشدهٔ
فعلی را
برمیگرداند.
nn_nl:
out,in,_activation
افزودن یک
لایهٔ 'nl'
(تابع
غیرخطی) به
شبکه فعلی.
'activation'
میتواند { elu |
gelu | leakyrelu | linear | log | normalize_l1 | normalize_l1_x |
normalize_l1_y | normalize_l1_z |
normalize_l1_c | normalize_l2 | normalize_l2_x | normalize_l2_y |
normalize_l2_z | normalize_l2_c | relu | sigmoid | sin | sinc | softmax |
softmax_x
| softmax_y | softmax_z | softmax_c | sqr | sqrt | swish | tanh | z2 | z3
} باشد.
مقدار
پیشفرض:
'activation=leakyrelu'.
nn_noise:
out,in,_amplitude,_noise_type,_training_only={ 0:No | 1:Yes }
افزودن یک
لایهٔ 'noise' به
شبکه فعلی.
'noise_type'
میتواند {
0:Gaussian | 1:Uniform | 2:Salt&pepper | 3:Poisson | 4:Rice }
باشد.
اگر 'training_only'
تنظیم شود،
نویز تنها
در طول
مرحلهٔ
آموزش شبکه
به ورودی
اعمال
میشود.
مقدار
پیشفرض:
'amplitude=0.1'، 'noise_type=0' و
'training_only=1'.
nn_norm:
out,in,p>=0,_axis={ 0 | x | y | z | c }
افزودن یک
لایهٔ 'norm'
(محاسبهٔ
نُرم Lp) به
شبکه فعلی.
'p' میتواند
{ 0:Squared norm | >0:Lp-norm }
باشد.
مقادیر
پیشفرض: 'p=2'
و 'axis=0'.
nn_normalize:
out,in,axes,_normalization_type={ 0:Avg_std | 1:RMS
},_group_x>=0,_group_y>=0,_group_z>=0,_group_c>=0,_learning_mode
افزودن یک
لایهٔ 'normalize' به
شبکه فعلی.
این لایهٔ
نرمالسازی
همهمنظوره
است و
میتواند
رفتار Layernorm،
InstanceNorm، GroupNorm، یا RMSNorm
را
شبیهسازی
کند.
'axes' ابعادی
را که برای
محاسبهٔ
میانگین/انحرافمعیار
نرمالسازی
به کار
میروند،
مشخص
میکند.
'axes'
میتواند { x | y
| z | c | xy | xz | xc | yz | yc | xyz | xyc | xzc | yzc | xyzc }
باشد.
به عنوان
مثال:
* 'axes=c' به این
معنی است که
پیکسلهای
برداری
تصویر
ورودی به
طور مستقل،
با توجه به
مقادیر
کانال
نرمالسازی
میشوند.
* 'axes=xyz' به این
معنی است که
هر کانال
ورودی
تصویر
ورودی به
طور مستقل،
با توجه به
تمامی
مقادیر
پیکسلی (x,y,z)
نرمالسازی
میشود.
در صورتی که
مقداری غیر
از '0' داشته
باشد، یک
آرگومان 'group_*'
محور مکمل
متناظر را
وادار
میکند تا
به 'N' گروه
تقسیم شود.
'learning_mode'
میتواند { 0:No
learning | 1:Gamma only | 2:Beta only | 3:Gamma+beta }
باشد.
مقادیر
پیشفرض:
'normalization_type=0'،
'group_x=group_y=group_z=group_c=0' و
'learning_mode=3'.
nn_parameters:
out,width>0,_height>0,_depth>0,_spectrum>0,_learning_mode,_weight_decay>=0,_initialization
افزودن یک
لایهٔ 'parameters'
(شبکهٔ
۴بُعدی از
پارامترهای
یادگیریپذیر)
به شبکه
فعلی.
'learning_mode'
میتواند { 0:No
learning | 1:Weights } باشد.
'initialization'
میتواند { 0:Zero
| 1:Identity | 2:Lecun-initialization | 3:He-initialization 4:Residual
He-initialization } باشد.
مقدار
پیشفرض:
'height=depth=spectrum=1'، 'learning_mode=1'،
'weight_decay=0' و 'initialization=3'.
nn_patchcolumn2d:
out,in,patch_size>0,_overlap>=0
افزودن یک
لایهٔ 'patchcolumn2d'
(بازآرایی
تکههای
تصویر به
صورت
ستونهای
ماتریس) به
شبکه فعلی.
مقدار
پیشفرض:
'overlap=0'.
nn_patchdown2d:
out,in,_patch_size>1
افزودن یک
لایهٔ 'patchdown2d'
(کاهش مقیاس
دوبُعدی بر
پایهٔ
تکهها) به
شبکه فعلی.
مقدار
پیشفرض:
'patch_size=2'.
nn_patchdown3d:
out,in,_patch_size>1
افزودن یک
لایهٔ 'patchdown3d'
(کاهش مقیاس
سهبُعدی
بر پایهٔ
تکهها) به
شبکه فعلی.
مقدار
پیشفرض:
'patch_size=2'.
nn_patchup2d:
out,in,_patch_size>1
افزودن یک
لایهٔ 'patchup2d'
(افزایش
مقیاس
دوبُعدی بر
پایهٔ
تکهها) به
شبکه فعلی.
مقدار
پیشفرض:
'patch_size=2'.
nn_patchup3d:
out,in,_patch_size>1
افزودن یک
لایهٔ 'patchup3d'
(افزایش
مقیاس
سهبُعدی
بر پایهٔ
تکهها) به
شبکه فعلی.
مقدار
پیشفرض:
'patch_size=2'.
nn_permute:
out,in,permutation
افزودن یک
لایهٔ 'permute'
(جایگشت
محورها) به
شبکه فعلی.
nn_print:
چاپ
اطلاعات
دربارهٔ
شبکه فعلی.
nn_rename:
out,in
افزودن یک
لایهٔ 'rename' به
شبکه فعلی.
nn_reshape:
out,in,width>0,_height>0,_depth>0,_spectrum>0
افزودن یک
لایهٔ 'reshape' به
شبکه فعلی.
مقادیر
پیشفرض:
'height=depth=spectrum=1'.
nn_resize:
out,in,width[%]>0,_height[%]>0,_depth[%]>0,_spectrum[%]>0,_interpolation
افزودن یک
لایهٔ 'resize' به
شبکه فعلی.
'interpolation'
میتواند {
-1:None (memory content) | 0:None | 1:Nearest | 2:Average | 3:Linear |
4=Grid | 5=Bicubic | 6=Lanczos } باشد.
مقادیر
پیشفرض:
'height=depth=spectrum=100%' و 'interpolation=3'.
nn_run:
out,in,"command",_width[%]>0,_height[%]>0,_depth[%]>0,_spectrum[%]>0
افزودن یک
لایهٔ 'run' به
شبکه فعلی.
مقادیر
پیشفرض:
'width=height=depth=spectrum=100%'.
nn_save:
'filename.gmz',_include_trainer_data={ 0:No | 1:Yes }
ذخیرهٔ
شبکه فعلی
در قالب یک
فایل .gmz.
'.gmz' یک پسوند
اجباری
است؛ مشخص
کردن هر
پسوند فایل
دیگری با
خطا مواجه
خواهد شد.
مقدار
پیشفرض:
'include_trainer_data=1'.
nn_size:
بازگرداندن
اندازهٔ
شبکه فعلی
(یعنی تعداد
پارامترهای
ذخیرهشده).
nn_split:
out0,out1,_out2,_out3,in,axis={ x | y | z | c
},_size_out0>0,_size_out1>0,_size_out2>0,_size_out3>0
افزودن یک
لایهٔ 'split' به
شبکه فعلی.
مقادیر
پیشفرض:
'size2=size1=size0'.
nn_store:
'variable_name',_include_trainer_data={ 0:No | 1:Yes }
ذخیرهٔ
شبکه فعلی
در یک
متغیر.
مقدار
پیشفرض:
'include_trainer_data=1'.
nn_sub:
out,in0,in1افزودن یک
لایهٔ 'sub'
(تفریق
عنصربهعنصر)
به شبکهٔ
کنونی.
'in0' یا 'in1'
میتوانند
نامهای
لایه یا
مقادیر
ثابت باشند
(البته هر دو
نمیتوانند
مقادیر
ثابت
باشند).
nn_sum:
out,in,_is_average={ 0:No | 1:Yes },_axis={ 0 | x | y | z | c }
افزودن یک
لایهٔ 'sum'
(محاسبهٔ
مجموع یا
میانگین) به
شبکهٔ
کنونی.
مقادیر
پیشفرض:
'is_average=0' و 'axis=0'.
nn_tmmul:
out,in0,in1
افزودن یک
لایهٔ 'tmmul'
(ضرب
ماتریسی 'in0^t.in1')
به شبکهٔ
کنونی.
'in0' یا 'in1' باید
دارای
اندازههای
سازگار
باشند.
nn_tmmult:
out,in0,in1
افزودن یک
لایهٔ 'tmmult'
(ضرب
ماتریسی
'in0^t.in1^t') به
شبکهٔ
کنونی.
'in0' یا 'in1' باید
دارای
اندازههای
سازگار
باشند.
nn_transpose:
out,in
افزودن یک
لایهٔ 'transpose'
(ترانهادهٔ
ماتریس) به
شبکهٔ
کنونی.
nn_trainer:
out,loss,_optimizer,_"optimizer_params",_scheduler,_"scheduler_params"
افزودن یک
آموزشدهندهٔ
شبکه (trainer) به
شبکهٔ
کنونی، با
بهینهساز
و زمانبند
مشخصشده.
'optimizer'
میتواند { adam |
adamax | dtschump | sgd | rmsprop } باشد.
'scheduler'
میتواند {
constant | linear | exponential | adaptive }
باشد.
* مقدار 'optimizer_params'
به
بهینهساز
انتخابشده
بستگی دارد:
'adam', 'adamax':
(learning_rate,beta1,beta2,weight_decay,clip_gradient_min,clip_gradient_max).
'dtschump': (
learning_rate,momentum,weight_decay,clip_gradient_min,clip_gradient_max ).
'rmsprop': (
learning_rate,momentum,beta,weight_decay,clip_gradient_min,clip_gradient_max
).
'sgd': (
learning_rate,momentum,weight_decay,clip_gradient_min,clip_gradient_max ).
* مقدار 'scheduler_params'
به
زمانبند
انتخابشده
بستگی دارد:
'constant' : (none).
'adaptive' : (
lr_min,lr_max,nb_warmup_iterations,nb_cooldown_iterations,patience_down,factor_down,patience_up,factor_up
).
مقادیر
پیشفرض:
'optimizer=adam'، 'optimizer_params=(default)'،
'scheduler=constant' و
'scheduler_params=(default)'.
nn_varname:
layer_name
بازگرداندن
نام متغیر
استفادهشده
در ارزیاب
ریاضی برای
ذخیرهٔ
خروجی
لایهٔ
مشخصشدهٔ
شبکه.
11.15.
آرایهها،
کاشیها و
قابها (Arrays, Tiles and
Frames)
------------------------
array:
M>0,_N>0,_expand_type={ 0:Min | 1:Max | 2:All }
ایجاد
آرایهٔ MxN از
تصویرهای
انتخابشده.
مقادیر
پیشفرض: 'N=M'
و 'expand_type=0'.
مثال:
[#1] image.jpg array 3,2,2
array_fade:
M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0:Min
| 1:Max | 2:All}
ایجاد
آرایهٔ MxN از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'N=M'، 'fade_start=60'، 'fade_end=90'
و 'expand_type=1'.
مثال:
[#1] image.jpg array_fade 3,2
array_mirror:
N>=0,_dir={ 0:X | 1:Y | 2:XY | 3:Tri-XY },_expand_type={ 0:No | 1:Yes
}
ایجاد
آرایهٔ 2^Nx2^N از
تصویرهای
انتخابشده.
مقادیر
پیشفرض: 'dir=2'
و 'expand_type=0'.
مثال:
[#1] image.jpg array_mirror 2
array_random:
Ms>0,_Ns>0,_Md>0,_Nd>0
ایجاد
آرایهٔ MdxNd از
کاشیها از
آرایههای
مبدأ MsxNs
انتخابشده.
مقادیر
پیشفرض:
'Ns=Ms'، 'Md=Ms' و 'Nd=Ns'.
مثال:
[#1] image.jpg +array_random 8,8,15,10
frame:
axes,size[%]>=0,_col1,...,_colN
درج قاب
بیرونی در
تصویرهای
انتخابشده،
در امتداد
محورهای
مشخصشده.
'axes'
میتواند { x | y
| z | xy | xz | yz | xyz } باشد.
مقدار
پیشفرض:
'axes=xy'، 'size=10%'،
'col1=col2=col3=col4=255'.
مثال:
[#1] image.jpg frame xy,10%,255,128,0
frame_blur:
_sharpness>0,_size>=0,_smoothness,_shading,_blur
رسم قاب گرد
با رنگ RGBA در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'sharpness=10'، 'size=30'،
'smoothness=0'، 'shading=1' و
'blur=3%'.
مثال:
[#1] image.jpg frame_blur 3,30,8,10%
frame_cube:
_depth>=0,_centering_x,_centering_y,_left_side={ 0:Normal | 1:Mirror-X |
2:Mirror-Y | 3:Mirror-XY },_right_side,_lower_side,_upper_side
درج
قابهای
سهبعدی در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'depth=1'، 'centering_x=centering_y=0' و
'left_side=right_side,lower_side=upper_side=0'.
مثال:
[#1] image.jpg frame_cube ,
frame_fuzzy:
size_x[%]>=0,_size_y[%]>=0,_fuzziness>=0,_smoothness[%]>=0,_R,_G,_B,_A
رسم قاب
مبهم (fuzzy) با
رنگ RGBA در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'size_y=size_x'، 'fuzziness=5'،
'smoothness=1' و 'R=G=B=A=255'.
مثال:
[#1] image.jpg frame_fuzzy 20
frame_painting:
_size[%]>=0,0<=_contrast<=1,_profile_smoothness[%]>=0,_R,_G,_B,_vignette_size[%]>=0,_vignette_contrast>=0,_defects_contrast>=0,
0<=_defects_density<=100,_defects_size>=0,_defects_smoothness[%]>=0,_serial_number
افزودن قاب
نقاشی به
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'size=10%'، 'contrast=0.4'،
'profile_smoothness=6%'، 'R=225'،
'G=200'، 'B=120'،
'vignette_size=2%'، 'vignette_contrast=400'،
'defects_contrast=50'، 'defects_density=10'،
'defects_size=1'،
'defects_smoothness=0.5%' و
'serial_number=123456789'.
مثال:
[#1] image.jpg frame_painting ,
frame_pattern:
M>=3,_constrain_size={ 0:No | 1:Yes } |
M>=3,_[frame_image],_constrain_size={ 0:No | 1:Yes }
درج قاب
الگودار (pattern frame)
انتخابشده
در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'pattern=0' و 'constrain_size=0'.
مثال:
[#1] image.jpg frame_pattern 8
frame_round:
size_x[%]>=0,size_y[%]>=0,radius[%]>=0,_smoothness[%]>=0,_col1,...,_colN
درج یک قاب
داخلی گرد
در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'size_x=size_y=5%, 'radius=30%'، 'smoothness=0'
و 'col=0,0,0,255'.
frame_seamless:
frame_size>=0,_patch_size>0,_blend_size>=0,_frame_direction={
0:Inner (preserve image size) | 1:Outer }
درج یک قاب
در
تصویرهای
انتخابشده
بهطوریکه
کاشیکاری
تصویر
حاصل،
درزها را
کمتر
نمایان
سازد.
مقادیر
پیشفرض:
'patch_size=7'، 'blend_size=5' و
'frame_direction=1'.
مثال:
[#1] image.jpg +frame_seamless 30 array 2,2
img2ascii:
_charset,_analysis_scale>0,_analysis_smoothness[%]>=0,_synthesis_scale>0,_output_ascii_filename
رندر کردن
تصویرهای
انتخابشده
بهصورت
هنر اسکی (ascii art)
دودویی.
این دستور
فهرستی از
عرضها و
ارتفاعها
(بیانشده
بهصورت
تعداد
نویسهها)
را برای هر
تصویر
انتخابشده
بازمیگرداند.
مقادیر
پیشفرض:
'charset=[ascii charset]'، 'analysis_scale=16'،
'analysis_smoothness=20%'، 'synthesis_scale=16'
و
'_output_ascii_filename=[undefined]'.
مثال:
[#1] image.jpg img2ascii ,
imagegrid:
M>0,_N>0
ایجاد
شبکهٔ
تصویر MxN از
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'N=M'.
مثال:
[#1] image.jpg imagegrid 16
imagegrid_hexagonal:
_resolution>0,0<=_outline<=1
ایجاد
شبکههای
ششضلعی از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'resolution=32'، 'outline=0.1' و
'is_antialiased=1'.
مثال:
[#1] image.jpg imagegrid_hexagonal 24
imagegrid_triangular:
pattern_width>=1,_pattern_height>=1,_pattern_type,0<=_outline_opacity<=1,_outline_color1,...
ایجاد
شبکههای
مثلثی از
تصویرهای
انتخابشده.
'pattern type'
میتواند {
0:Horizontal | 1:Vertical | 2:Crossed | 3:Cube | 4:Decreasing | 5:Increasing
} باشد.
مقادیر
پیشفرض:
'pattern_width=24'،
'pattern_height=pattern_width'،
'pattern_type=0'، 'outline_opacity=0.1' و
'outline_color1=0'.
مثال:
[#1] image.jpg imagegrid_triangular 6,10,3,0.5
map_sprites:
_nb_sprites>=1,_allow_rotation={ 0:None | 1:90 deg. | 2:180 deg. }
نگاشت
مجموعهای
از
اسپریتها
(تعریفشده
بهصورت 'nb_sprites'
تصویر آخر
از میان
موارد
انتخابشده)
به دیگر
تصویرهای
انتخابشده،
بر اساس
درخشندگی
مقادیر
پیکسلهای
آنها.
مثال:
[#1] image.jpg rescale2d ,48 repeat 16 ball {8+2*$>},${-rgb} mul[-1]
{(1+$>)/16} done map_sprites 16
pack:
is_ratio_constraint={ 0:No | 1:Yes },_sort_criterion
بستهبندی
تصویرهای
انتخابشده
در یک تصویر
واحد.
وضعیت
بازگرداندهشده
حاوی
فهرستی از
آفستهای (x,y)
جدید برای
هر تصویر
ورودی است.
پارامتر
'is_ratio_constraint' مشخص
میکند که
آیا تصویر
حاصل باید
به سمت مربع
میل کند یا
خیر.
مقادیر
پیشفرض:
'is_ratio_constraint=0' و
'sort_criterion=max(w,h)'.
مثال:
[#1] image.jpg repeat 10 +rescale2d[-1] 75% balance_gamma[-1] ${-rgb} done
pack 0
puzzle:
_width>0,_height>0,_M>=1,_N>=1,_curvature,_centering,_connectors_variability,_resolution>=1
تولید یک
ماسک پازل
دودویی با
اندازه و
هندسهٔ
مشخصشده.
مقادیر
پیشفرض:
'width=height=512'، 'M=N=5'،
'curvature=0.5'، 'centering=0.5'،
'connectors_variability=0.5' و
'resolution=64'.
مثال:
[#1] puzzle ,rotate_tiles:
angle,_M>0,N>0
اِعمال
جلوه چرخش
کاشیکاریشدهٔ
MxN روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض: 'M=8'
و 'N=M'.
مثال:
[#1] image.jpg to_rgba rotate_tiles 10,8 drop_shadow 10,10 display_rgba
shift_tiles:
M>0,_N>0,_amplitude
اِعمال
جلوه
تغییرمکان
کاشیکاریشدهٔ
MxN روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض: 'N=M'
و 'amplitude=20'.
مثال:
[#1] image.jpg +shift_tiles 8,8,10
taquin:
M>0,_N>0,_remove_tile={ 0:None | 1:First | 2:Last | 3:Random
},_relief,_border_thickness[%],_border_outline[%],_outline_color
ایجاد پازل
تکین (لغزان)
MxN از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'N=M'، 'relief=50'،
'border_thickness=5'، 'border_outline=0' و
'remove_tile=0'.
مثال:
[#1] image.jpg +taquin 8
tunnel:
_level>=0,_factor>0,_centering_x,_centering_y,_opacity,_angle
اِعمال
جلوه تونل
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'level=9'، 'factor=80%'،
'centering_x=centering_y=0.5'، 'opacity=1' و
'angle=0'
مثال:
[#1] image.jpg tunnel 20
11.16. هنری (Artistic)
---------------------
boxfitting:
_min_box_size>=1,_max_box_size>=0,_initial_density>=0,_min_spacing>0
اِعمال
جلوه
جایگذاری
جعبهها
روی
تصویرهای
انتخابشده،
همانطور
که در صفحه
وب زیر نشان
داده شده
است:
http://www.complexification.net/gallery/machines/boxFittingImg.
مقادیر
پیشفرض:
'min_box_size=1'، 'max_box_size=0'،
'initial_density=0.25' و 'min_spacing=1'.
مثال:
[#1] image.jpg boxfitting ,
brushify:
[brush],_brush_nb_sizes>=1,0<=_brush_min_size_factor<=1,_brush_nb_orientations>=1,_brush_light_type,0<=_brush_light_strength<=1,_brush_opacity,
_painting_density[%]>=0,0<=_painting_contours_coherence<=1,0<=_painting_orientation_coherence<=1,_painting_coherence_alpha[%]>=0,
_painting_coherence_sigma[%]>=0,_painting_primary_angle,0<=_painting_angle_dispersion<=1
اِعمال
قلمموی
مشخصشده
برای ایجاد
نگارشهای
نقاشیمانند
از
تصویرهای
مشخصشده.
'brush_light_type'
میتواند { 0:None
| 1:Flat | 2:Darken | 3:Lighten | 4:Full }
باشد.
مقادیر
پیشفرض:
'brush_nb_sizes=3'،
'brush_min_size_factor=0.66'،
'brush_nb_orientations=12'،
'brush_light_type=0'،
'brush_light_strength=0.25'، 'brush_opacity=0.8'،
'painting_density=20%'،
'painting_contours_coherence=0.9'،
'painting_orientation_coherence=0.9'،
'painting_coherence_alpha=1'،
'painting_coherence_sigma=1'،
'painting_primary_angle=0'،
'painting_angle_dispersion=0.2'
مثال:
[#1] image.jpg 40,40 gaussian[-1] 10,4 spread[-1] 10,0 brushify[0] [1],1
cartoon:
_smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0
اِعمال
جلوه
کارتون روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'smoothness=3'، 'sharpening=150'،
'threshold=20'، 'thickness=0.25'،
'color=1.5' و
'quantization=8'.
مثال:
[#1] image.jpg cartoon 3,50,10,0.25,3,16
color_ellipses:
_count>0,_radius>=0,_opacity>=0
افزودن
بیضیهای
رنگی
تصادفی به
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'count=400'، 'radius=5' و
'opacity=0.1'.
مثال:
[#1] image.jpg +color_ellipses ,,0.15
cubism:
_density>=0,0<=_thickness<=50,_max_angle,_opacity,_smoothness>=0
اِعمال
جلوه
کوبیسم روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'density=50'، 'thickness=10'،
'max_angle=75'، 'opacity=0.7' و
'smoothness=0'.
مثال:
[#1] image.jpg cubism ,
draw_whirl:
_amplitude>=0
اِعمال
جلوه طراحی
پیچشی روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'amplitude=100'.
مثال:
[#1] image.jpg draw_whirl ,
drop_shadow:
_offset_x[%],_offset_y[%],_smoothness[%]>=0,_curvature_x,_curvature_y,_expand_size={
0:No | 1:Yes }
انداختن
سایه در پشت
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'offset_x=20'، 'offset_y=offset_x'،
'smoothness=5'، 'curvature=0' و
'expand_size=1'.
مثال:
[#1] image.jpg drop_shadow 10,20,5,0.5 expand. xy,20 display_rgba
drop_shadow:
_offset_x[%],_offset_y[%],_smoothness[%]>=0,curvature_x>=0,curvature_y>=0,_expand_size={
0:No | 1:Yes },_output_separate_layers={ 0:No | 1:Yes }
انداختن
سایه در پشت
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'offset_x=20'، 'offset_y=offset_x'،
'smoothness=5'، 'curvature_x=curvature_y=0'،
'expand_size=1'
و 'output_separate_layers=0'.
مثال:
[#1] image.jpg drop_shadow 10,20,5,0.5 display_rgba
ellipsionism:
_R[%]>0,_r[%]>0,_smoothness[%]>=0,_opacity,_outline>0,_density>0
اِعمال
فیلتر
بیضیگرایی
(Ellipsionism) روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'R=10'، 'r=3'، 'smoothness=1%'،
'opacity=0.7'، 'outline=8' و
'density=0.6'.
مثال:
[#1] image.jpg ellipsionism ,
fire_edges:
_edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0
تولید جلوه
آتش از
لبههای
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'edges=0.7'، 'attenuation=0.25'،
'smoothness=0.5'، 'threshold=25'،
'nb_frames=1'،
'starting_frame=20' و 'frame_skip=0'.
مثال:
[#1] image.jpg fire_edges ,
fractalize:
0<=detail_level<=1
فرکتالی
کردن
تصادفی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'detail_level=0.8'
مثال:
[#1] image.jpg fractalize ,
glow:
_amplitude>=0
افزودن
درخشش نرم
روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'amplitude=1%'.
مثال:
[#1] image.jpg glow ,
halftone:
nb_levels>=2,_size_dark>=2,_size_bright>=2,_shape={ 0:Square |
1:Diamond | 2:Circle | 3:inv-square | 4:inv-diamond | 5:inv-circle
},_smoothness[%]>=0
اِعمال
ترامبندی
هافتون (halftone
dithering) روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'nb_levels=5'، 'size_dark=8'،
'size_bright=8'، 'shape=5' و
'smoothness=0'.
مثال:
[#1] image.jpg halftone ,
hardsketchbw:
_amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={
0:No | 1:Yes }
اِعمال
جلوه
طرحدستی
سیاهوسفید
خشن روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'amplitude=1000'، 'sampling=3'،
'opacity=0.1'، 'edge_threshold=20' و
'is_fast=0'.
مثال:
[#1] image.jpg +hardsketchbw 200,70,0.1,10 median[-1] 2 +local reverse
blur[-1] 3 blend[-2,-1] overlay done
hearts:
_density>=0
اِعمال
جلوه قلب
روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'density=10'.
مثال:
[#1] image.jpg hearts ,
houghsketchbw:
_density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0
اِعمال
جلوه
طرحدستی
سیاهوسفید
هاف (Hough) روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'density=100'، 'radius=3'،
'threshold=100'، 'opacity=0.1' و
'votesize=100%'.
مثال:
[#1] image.jpg +houghsketchbw ,
lightrays:
100<=_density<=0,_center_x[%],_center_y[%],_ray_length>=0,_ray_attenuation>=0
تولید
پرتوهای
نور از
لبههای
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'density=50%'، 'center_x=50%'،
'center_y=50%'، 'ray_length=0.9' و
'ray_attenuation=0.5'.
مثال:
[#1] image.jpg +lightrays , + cut 0,255
light_relief:
_ambient_light,_specular_lightness,_specular_size,_darkness,_light_smoothness,_xl,_yl,_zl,_zscale,_opacity_is_heightmap={
0:No | 1:Yes }
اِعمال
جلوه نور
برجستهنما
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'ambient_light=0.3'، 'specular_lightness=0.5'،
'specular_size=0.2'، 'darkness=0'،
'xl=0.2'،
'yl=zl=0.5'،
'zscale=1'، 'opacity=1' و
'opacity_is_heightmap=0'.
مثال:
[#1] image.jpg blur 2 light_relief 0.3,4,0.1,0
linify:
0<=_density<=100,_spreading>=0,_resolution[%]>0,_line_opacity>=0,_line_precision>0,_mode={
0:Subtractive | 1:Additive }
اِعمال
جلوه
خطیسازی (Linify)
روی
تصویرهای
انتخابشده.
این
الگوریتم
از روش
شرحدادهشده
در صفحه وب
http://linify.me/about الهام
گرفته شده
است.
مقادیر
پیشفرض:
'density=50'، 'spreading=2'،
'resolution=40%'، 'line_opacity=10'،
'line_precision=24' و
'mode=0'.
مثال:
[#1] image.jpg linify 60
mosaic:
0<=_density<=100ایجاد
موزاییک
تصادفی از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'density=30'.
مثال:
[#1] image.jpg mosaic , +fill "I!=J(1) || I!=J(0,1)?[0,0,0]:I"
old_photo:
اعمال
جلوهٔ عکس
قدیمی روی
تصویرهای
انتخابشده.
مثال:
[#1] image.jpg old_photo
pencilbw:
_size>=0,_amplitude>=0
اعمال
جلوهٔ مداد
سیاهوسفید
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'size=0.3' و 'amplitude=60'.
مثال:
[#1] image.jpg pencilbw ,
pixelsort:
_ordering={ +:Increasing | -:Decreasing },_axis={ x | y | z | xy | yx
},_[sorting_criterion],_[mask]
اعمال
الگوریتم
«pixel sorting» روی
تصویرهای
انتخابشده،
همانطور
که در صفحهٔ
زیر شرح
داده شده
است:
http://satyarth.me/articles/pixel-sorting.
مقادیر
پیشفرض:
'ordering=+'، 'axis=x' و
'sorting_criterion=mask=(undefined)'.
مثال:
[#1] image.jpg +norm +ge[-1] 30% +pixelsort[0] +,y,[1],[2]
polaroid:
_size1>=0,_size2>=0
ایجاد
جلوهٔ
پلاروید در
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'size1=10' و 'size2=20'.
مثال:
[#1] image.jpg to_rgba polaroid 5,30 rotate 20 drop_shadow , drgba
polygonize:
_warp_amplitude>=0,_smoothness[%]>=0,_min_area[%]>=0,_resolution_x[%]>0,_resolution_y[%]>0
اعمال
جلوهٔ
چندضلعی (polygon)
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'warp_amplitude=300'، 'smoothness=2%'،
'min_area=0.1%'، 'resolution_x=resolution_y=10%'.
مثال:
[#1] image.jpg +polygonize 100,10 fill[-1] "I!=J(1) ||
I!=J(0,1)?[0,0,0]:I"
poster_edges:
0<=_edge_threshold<=100,0<=_edge_shade<=100,_edge_thickness>=0,_edge_antialiasing>=0,0<=_posterization_level<=15,_posterization_antialiasing>=0
اعمال
جلوهٔ
لبههای
پوستر روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'edge_threshold=40'، 'edge_shade=5'،
'edge_thickness=0.5'، 'edge_antialiasing=10'،
'posterization_level=12' و
'posterization_antialiasing=0'.
مثال:
[#1] image.jpg poster_edges ,
poster_hope:
_smoothness>=0
اعمال
جلوهٔ
پوستر
شابلونی Hope
روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'smoothness=3'.
مثال:
[#1] image.jpg poster_hope ,
rodilius:
0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={
0:Darker | 1:Brighter }
اعمال
فیلتر rodilius
(مشابه fractalius)
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'amplitude=10'، 'thickness=10'،
'sharpness=400'، 'nb_orientations=7'،
'offset=0' و
'color_mode=1'.
مثال:
[#1] image.jpg rodilius 12,10,300,10 normalize_local 10,6
[#2] image.jpg normalize_local 10,16 rodilius 10,4,400,16 smooth 60,0,1,1,4
normalize_local 10,16
sketchbw:
_nb_angles>0,_start_angle,_angle_range>=0,_length>=0,_threshold>=0,_opacity,_bgfactor>=0,_density>0,_sharpness>=0,_anisotropy>=0,_smoothness>=0,
_coherence>=0,_is_boost={ 0:No | 1:Yes },_is_curved={ 0:No | 1:Yes }
اعمال
جلوهٔ طرح (sketch)
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'nb_angles=2'، 'start_angle=45'،
'angle_range=180'، 'length=30'،
'threshold=3'،
'opacity=0.03'، 'bgfactor=0'،
'density=0.6'، 'sharpness=0.1'،
'anisotropy=0.6'، 'smoothness=0.25'،
'coherence=1'، 'is_boost=0' و
'is_curved=1'.
مثال:
[#1] image.jpg +sketchbw 1 reverse blur[-1] 3 blend[-2,-1] overlay
sponge:
_size>0
اعمال
جلوهٔ
اسفنج روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'size=13'.
مثال:
[#1] image.jpg sponge ,
stained_glass:
_edges[%]>=0, shading>=0, is_thin_separators={ 0:No | 1:Yes }
ایجاد
جلوهٔ
شیشهٔ رنگی
(stained glass) از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'edges=40%'، 'shading=0.2' و
'is_precise=0'.
مثال:
[#1] image.jpg stained_glass 20%,1 cut 0,20
stars:
_density[%]>=0,_depth>=0,_size>0,_nb_branches>=1,0<=_thickness<=1,_smoothness[%]>=0,_R,_G,_B,_opacity
افزودن
ستارههای
تصادفی به
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'density=10%'، 'depth=1'،
'size=32'، 'nb_branches=5'،
'thickness=0.38'، 'smoothness=0.5'،
'R=G=B=200' و 'opacity=1'.
مثال:
[#1] image.jpg stars ,
stencil:
_radius[%]>=0,_smoothness>=0,_iterations>=0
اعمال
فیلتر
شابلون (stencil)
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'radius=3'، 'smoothness=1' و
'iterations=8'.
مثال:
[#1] image.jpg +norm stencil. 2,1,4 +mul rm[0]
stencilbw:
_edges>=0,_smoothness>=0
اعمال
جلوهٔ
شابلون
سیاهوسفید
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'edges=15' و 'smoothness=10'.
مثال:
[#1] image.jpg +stencilbw 40,4
stylize:
[style_image],_fidelity_finest,_fidelity_coarsest,_fidelity_smoothness_finest>=0,_fidelity_smoothnes_coarsest>=0,0<=_fidelity_chroma<=1,_init_type,
_init_resolution>=0,init_max_gradient>=0,_patch_size_analysis>0,_patch_size_synthesis>0,_patch_size_synthesis_final>0,_nb_matches_finest>=0,
_nb_matches_coarsest>=0,_penalize_repetitions>=0,_matching_precision>=0,_scale_factor>1,_skip_finest_scales>=0,_"image_matching_command"
انتقال
رنگها و
بافتها از
تصویر سبک (style)
مشخصشده
به
تصویرهای
انتخابشده،
با استفاده
از
الگوریتم
تطبیق وصله
چندمقیاسی
(multi-scale patch-matching).
اگر پنجرهٔ
نمایش فوری
window[0] باز باشد،
مراحل سنتز
تصویر روی
آن نمایش
داده
میشود.
'init_type'
میتواند {
0:Best-match | 1:Identity | 2:Randomized }
باشد.
مقادیر
پیشفرض:
'fidelity_finest=0.5'، 'fidelity_coarsest=2'،
'fidelity_smoothness_finest=3'،
'fidelity_smoothness_coarsest=0.5'،
'fidelity_chroma=0.1'، 'init_type=0'،
'init_resolution=16'،
'init_max_gradient=0'، 'patch_size_analysis=5'،
'patch_size_synthesis=5'،
'patch_size_synthesis_final=5'،
'nb_matches_finest=2'، 'nb_matchesc_coarsest=30'،
'penalize_repetitions=2'،
'matching_precision=2'،
'scale_factor=1.85'، 'skip_finest_scales=0' و
'image_matching_command'="s c,-3 transfer_pca[0] [2] b[0,2] xy,0.7
n[0,2] 0,255 n[1,
2] 0,200 a[0,1] c a[1,2] c"'.
tetris:
_scale>0
اعمال
جلوهٔ
تتریس روی
تصویرهای
انتخابشده.
مقدار
پیشفرض:
'scale=10'.
مثال:
[#1] image.jpg +tetris 10
warhol:
_M>0,_N>0,_smoothness>=0,_color>=0
ایجاد اثر
هنری طرح
اندی
وارهول در
ابعاد MxN از
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'M=3'، 'N=M'، 'smoothness=2' و
'color=20'.
مثال:
[#1] image.jpg warhol 3,3,3,40
weave:
_density>=0,0<=_thickness<=100,0<=_shadow<=100,_shading>=0,_fibers_amplitude>=0,_fibers_smoothness>=0,_angle,-1<=_x_curvature<=1,-1<=_y_curvature<=1
اعمال
جلوهٔ بافت
(weave) روی
تصویرهای
انتخابشده.
'angle'
میتواند { 0:0
deg. | 1:22.5 deg. | 2:45 deg. | 3:67.5 deg. }
باشد.
مقادیر
پیشفرض:
'density=6'، 'thickness=65'،
'shadow=40'، 'shading=0.5'،
'fibers_amplitude=0'،
_'fibers_smoothness=0'، 'angle=0' و
'curvature_x=curvature_y=0'
مثال:
[#1] image.jpg weave ,
whirls:
_texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0
افزودن
بافت
چرخشهای
تصادفی (whirl) به
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'texture=3'، 'smoothness=6'،
'darkness=0.5' و 'lightness=1.8'.
مثال:
[#1] image.jpg whirls ,
11.17. پیچشها
(Warpings)
--------
deform:
_amplitude[%]>=0,_interpolation,_boundary_conditions
اعمال
دگرشکلی
هموار
تصادفی روی
تصویرهای
انتخابشده.
'interpolation'
میتواند { 0:None
| 1:Linear | 2:Bicubic } باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'amplitude=10'، 'interpolation=1' و
'boundary_conditions=3'.
مثال:
[#1] image.jpg +deform[0] 10 +deform[0] 20
euclidean2polar:
_center_x[%],_center_y[%],_stretch_factor>0,_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
اعمال
تبدیل
اقلیدسی به
قطبی روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'، 'stretch_factor=1' و
'boundary_conditions=3'.
مثال:
[#1] image.jpg +euclidean2polar ,
equirectangular2nadirzenith:
تبدیل
تصویرهای
همفاصلهٔ
استوانهای
(equirectangular)
انتخابشده
به
تصویرسازیهای
مستقیمالخط
nadir/zenith.
fisheye:
_center_x,_center_y,0<=_radius<=100,_amplitude>=0
اعمال
دگرشکلی
چشمماهی (fisheye)
روی
تصویرهای
انتخابشده.
مقادیر
پیشفرض:
'x=y=50'، 'radius=50' و
'amplitude=1.2'.
مثال:
[#1] image.jpg +fisheye ,
flower:
_amplitude,_frequency,_offset_r[%],_angle,_center_x[%],_center_y[%],_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror
}اعمال
تغییر شکل
گل (flower deformation) بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=30'، 'frequency=6'،
'offset_r=0'، 'angle=0'،
'center_x=center_y=50%' و
'boundary_conditions=3'.
مثال:
[#1] image.jpg +flower ,
kaleidoscope:
_center_x[%],_center_y[%],_radius,_angle,_boundary_conditions={ 0:Dirichlet |
1:Neumann | 2:Periodic | 3:Mirror }
ایجاد جلوه
زیبابین (kaleidoscope)
از تصاویر
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'، 'radius=100'،
'angle=30' و 'boundary_conditions=3'.
مثال:
[#1] image.jpg kaleidoscope ,
map_sphere:
_width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0
نگاشت
تصاویر
انتخابشده
روی یک کره.
مقادیر
پیشفرض:
'width=height=512'، 'radius=100'،
'dilation=0.5'، 'fading=0' و
'fading_power=0.5'.
مثال:
[#1] image.jpg map_sphere ,
nadirzenith2equirectangular:
تبدیل
تصویرسازیهای
مستقیمخطی
نادر/سمتالرأس
(nadir/zenith rectilinear)
انتخابشده
به تصاویر
متساویالمستطیل
(equirectangular).
polar2euclidean:
_center_x[%],_center_y[%],_stretch_factor>0,_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
اعمال
تبدیل قطبی
به اقلیدسی
بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'، 'stretch_factor=1' و
'boundary_conditions=3'.
مثال:
[#1] image.jpg +euclidean2polar ,
raindrops:
_amplitude,_density>=0,_wavelength>=0,_merging_steps>=0
اعمال
تغییر شکل
قطرات
باران بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=80'، 'density=0.1'،
'wavelength=1' و 'merging_steps=0'.
مثال:
[#1] image.jpg +raindrops ,
ripple:
_amplitude,_bandwidth,_shape={ 0:Block | 1:Triangle | 2:Sine | 3:Sine+ |
4:Random },_angle,_offset
اعمال
تغییر شکل
موجآب (ripple) بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=10'، 'bandwidth=10'،
'shape=2'، 'angle=0' و 'offset=0'.
مثال:
[#1] image.jpg +ripple ,
rotoidoscope:
_center_x[%],_center_y[%],_tiles>0,_smoothness[%]>=0,_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
ایجاد جلوه
زیبابین
چرخشی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'center_x=center_y=50%'، 'tiles=10'،
'smoothness=1' و 'boundary_conditions=3'.
مثال:
[#1] image.jpg +rotoidoscope ,
spherize:
_radius[%]>=0,_strength,_smoothness[%]>=0,_center_x[%],_center_y[%],_ratio_x/y>0,_angle,_interpolation
اعمال جلوه
کرویسازی
(spherize) بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'radius=50%'، 'strength=1'،
'smoothness=0'، 'center_x=center_y=50%'،
'ratio_x/y=1'،
'angle=0' و 'interpolation=1'.
مثال:
[#1] image.jpg grid 5%,5%,0,0,0.6,255 spherize ,
symmetrize:
_x[%],_y[%],_angle,_boundary_conditions={ 0:Dirichlet | 1:Neumann |
2:Periodic | 3:Mirror },_is_antisymmetry={ 0:No | 1:Yes },_swap_sides={ 0:No
|
1:Yes }
متقارنسازی
تصاویر
انتخابشده
نسبت به
محور
مشخصشده.
مقادیر
پیشفرض:
'x=y=50%'، 'angle=90'،
'boundary_conditions=3'، 'is_antisymmetry=0' و
'swap_sides=0'.
مثال:
[#1] image.jpg +symmetrize 50%,50%,45 +symmetrize[-1] 50%,50%,-45
transform_polar:
"expr_radius",_"expr_angle",_center_x[%],_center_y[%],_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
اعمال
تبدیل
تعریفشده
توسط کاربر
بر روی
بازنمایی
قطبی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'expr_radius=R-r'، 'expr_rangle=a'،
'center_x=center_y=50%' و 'boundary_conditions=3'.
مثال:
[#1] image.jpg +transform_polar[0] R*(r/R)^2,a +transform_polar[0] r,2*a
twirl:
_amplitude,_center_x[%],_center_y[%],_boundary_conditions={ 0:Dirichlet |
1:Neumann | 2:Periodic | 3:Mirror }
اعمال
تغییر شکل
پیچش (twirl) بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=1'، 'center_x=center_y=50%' و
'boundary_conditions=3'.
مثال:
[#1] image.jpg twirl 0.6
warp (+):
[warping_field],_mode,_interpolation,_boundary_conditions,_nb_frames>0
وارپ یا
اعوجاج
تصاویر
انتخابشده
با میدان
جابهجایی
مشخصشده.
'mode'
میتواند {
0:Backward-absolute | 1:Backward-relative | 2:Forward-absolute |
3:Forward-relative } باشد.
'interpolation'
میتواند {
0:Nearest-neighbor | 1:Linear | 2:Cubic }
باشد.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'mode=0'، 'interpolation=1'،
'boundary_conditions=0' و 'nb_frames=1'.
مثال:
[#1] image.jpg
100%,100%,1,2,'X=x/w-0.5;Y=y/h-0.5;R=(X*X+Y*Y)^0.5;A=atan2(Y,X);130*R*(!c?cos(4*A):sin(8*A))'
warp[-2] [-1],1,1,0 quiver[-1] [-1],
10,1,1,1,100
آموزش:
https://gmic.eu/oldtutorial/_warp
warp_patch:
[displacement_map],patch_width>=1,_patch_height>=1,_patch_depth>=1,_std_factor>0,_boundary_conditions,_fast_approximation={
0:No | 1:Yes }
وارپ
وصلهای (patch-warp)
تصاویر
انتخابشده
با نقشه
جابهجایی
دوبعدی یا
سهبعدی
مشخصشده
(در حالت backward-absolute).
آرگومان 'std_factor'
انحراف
معیار
وزنهای
گاوسی را
برای
همپوشانی
وصلهها
تعیین
میکند،
برابر با 'std =
std_factor*patch_size'.
'boundary_conditions'
میتواند {
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
باشد.
مقادیر
پیشفرض:
'std_factor=0.3'، 'boundary_conditions=3' و
'fast_approximation=0'.
warp_perspective:
_x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary_conditions={
0:Dirichlet | 1:Neumann | 2:Periodic | 3:Mirror }
وارپ
تصاویر
انتخابشده
با تغییر
شکل
پرسپکتیو.
مقادیر
پیشفرض:
'x-angle=1.5'، 'y-angle=0'،
'zoom=1'، 'x-center=y-center=50' و
'boundary_conditions=2'.
مثال:
[#1] image.jpg warp_perspective ,
warp_rbf:
xs0[%],ys0[%],xt0[%],yt0[%],...,xsN[%],ysN[%],xtN[%],ytN[%]
وارپ
تصاویر
انتخابشده
با استفاده
از
درونیابی
مبتنی بر RBF.
هر آرگومان
(xsk,ysk)-(xtk,ytk)
بهترتیب
متناظر با
مختصات یک
نقطه کلیدی
روی تصاویر
مبدأ و مقصد
است. مجموعه
همه نقاط
کلیدی
تغییر شکل
کلی تصویر
را مشخص
میکند.
مثال:
[#1] image.jpg +warp_rbf
0,0,0,0,100%,0,100%,0,100%,100%,100%,100%,0,100%,0,100%,50%,50%,70%,50%,25%,25%,25%,75%
warp_seamless:
[displacement_map],_sigma[%]>0,_blend_dimension={ 0:Auto | 1:1D | 2:2D |
3:3D }
وارپ
تصاویر
دوبعدی یا
سهبعدی
انتخابشده
توسط میدان
جابهجایی
مشخصشده،
با استفاده
از ادغام
یکپارچه (seamless
blending).
مقادیر
پیشفرض:
'sigma=5%' و 'blend_dimension=0'.
مثال:
[#1] sp colorful,512 100%,100%,1,2,[x,y] l. { s xy,8 sort_list +,u
append_tiles , } +warp[0] [1] +warp_seamless[0] [1]
water:
_amplitude,_smoothness>=0,_angle
اعمال
تغییر شکل
آب بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=30'، 'smoothness=1.5' و
'angle=45'.
مثال:
[#1] image.jpg water ,
wave:
_amplitude>=0,_frequency>=0,_center_x,_center_y
اعمال
تغییر شکل
موجی بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=4'، 'frequency=0.4' و
'center_x=center_y=50'.
مثال:
[#1] image.jpg wave ,
wind:
_amplitude>=0,_angle,0<=_attenuation<=1,_threshold
اعمال جلوه
باد بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=20'، 'angle=0'،
'attenuation=0.7' و 'threshold=20'.
مثال:
[#1] image.jpg +wind ,
zoom:
_factor,_cx,_cy,_cz,_boundary_conditions={ 0:Dirichlet | 1:Neumann |
2:Periodic | 3:Mirror }
اعمال ضریب
بزرگنمایی
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'factor=1'، 'cx=cy=cz=0.5' و
'boundary_conditions=0'.
مثال:
[#1] image.jpg +zoom[0] 0.6 +zoom[0] 1.5
11.18.
تخریبها
(Degradations)
----------------------------
cracks:
0<=_density<=100,_is_relief={ 0:No | 1:Yes },_opacity,_color1,...
رسم
ترکهای
تصادفی با
رنگ مشخص بر
روی تصاویر
انتخابشده.
مقادیر
پیشفرض:
'density=25'، 'is_relief=0'، 'opacity=1'
و 'color1=0'.
مثال:
[#1] image.jpg +cracks ,
light_patch:
_density>0,_darkness>=0,_lightness>=0
افزودن
لکههای
نوری به
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'density=10'، 'darkness=0.9' و
'lightness=1.7'.
مثال:
[#1] image.jpg +light_patch 20,0.9,4
pixelate:
_scale_x>0,_scale_y>0,_scale_z>0
پیکسلیکردن
تصاویر
انتخابشده
با
مقیاسهای
مشخصشده.
مقادیر
پیشفرض:
'scale_x=20' و 'scale_y=scale_z=scale_x'.
مثال:
[#1] image.jpg +pixelate ,
scanlines:
_amplitude,_bandwidth,_shape={ 0:Block | 1:Triangle | 2:Sine | 3:Sine+ |
4:Random },_angle,_offset
اعمال جلوه
خطوط پویش
(scanlines) بر روی
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=60'، 'bandwidth=2'،
'shape=0'، 'angle=0' و
'offset=0'.مثال:
[#1] image.jpg +scanlines ,
shade_stripes:
_frequency>=0,_direction={ 0:Horizontal | 1:Vertical
},_darkness>=0,_lightness>=0
افزودن
نوارهای
سایهدار
به تصاویر
انتخابشده.
مقادیر
پیشفرض:
'frequency=5'، 'direction=1'،
'darkness=0.8' و 'lightness=2'.
مثال:
[#1] image.jpg +shade_stripes 30
shadow_patch:
_opacity>=0
افزودن
وصلههای
سایه به
تصاویر
انتخابشده.
مقدار
پیشفرض:
'opacity=0.7'.
مثال:
[#1] image.jpg +shadow_patch 0.4
shuffle:
بُر زدن
بردارهای
تصاویر
انتخابشده
با
الگوریتم
Fisher-Yates،
همانطور
که در
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
توضیح داده
شده است.
مثال:
[#1] uniform_distribution 8,3 shuffle
spread:
_dx[%]>=0,_dy[%]>=0,_dz[%]>=0
پخش کردن
مقادیر
پیکسل
تصاویر
انتخابشده
بهصورت
تصادفی در
امتداد x، y و z.
مقادیر
پیشفرض:
'dx=3'، 'dy=dx' و 'dz=0'.
مثال:
[#1] image.jpg +spread 3
stripes_y:
_frequency>=0
افزودن
نوارهای
عمودی به
تصاویر
انتخابشده.
مقدار
پیشفرض:
'frequency=10'.
مثال:
[#1] image.jpg +stripes_y ,
texturize_canvas:
_amplitude>=0,_fibrousness>=0,_emboss_level>=0
افزودن
بافت بوم
نقاشی به
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'amplitude=20'، 'fibrousness=3' و
'emboss_level=0.6'.
مثال:
[#1] image.jpg +texturize_canvas ,
texturize_paper:
افزودن
بافت کاغذی
به تصاویر
انتخابشده.
مثال:
[#1] image.jpg +texturize_paper
vignette:
_strength>=0,0<=_radius_min<=100,0<=_radius_max<=100
افزودن
جلوه وینیت
(تیرگی
گوشهها) به
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'strength=100'، 'radius_min=70' و
'radius_max=90'.
مثال:
[#1] image.jpg vignette ,
watermark_visible:
_text,0<_opacity<1,_{ size>0 | font },_angle,_mode={ 0:Remove |
1:Add },_smoothness>=0
افزودن یا
حذف یک
واترمارک
مرئی بر روی
تصاویر
انتخابشده
(دامنه
مقادیر
باید [0,255]
باشد).
مقادیر
پیشفرض: 'text=(c)
G'MIC'، 'opacity=0.3'، 'size=53'،
'angle=25'، 'mode=1' و
'smoothness=0'.
مثال:
[#1] image.jpg watermark_visible ,0.7
11.19. ترکیب و
محو کردن (Blending and
Fading)
-------------------------------------
blend:
[layer],blending_mode,_opacity[%],_selection_is={ 0:Base-layers |
1:Top-layers } |
blending_mode,_opacity[%]
ترکیب
تصاویر
انتخابی G،
GA، RGB یا RGBA با
لایهٔ
مشخصشده
یا ترکیب
تمام
تصاویر
انتخابشده
با یکدیگر،
با استفاده
از حالت
ترکیب
مشخصشده.
'blending_mode'
میتواند
یکی از
مقادیر زیر
باشد: { add | alpha | and | average | blue |
burn | darken | difference |
divide | dodge | edges | exclusion | freeze | grainextract | grainmerge |
green | hardlight |
hardmix | hue | interpolation | lchlightness | lighten | lightness |
linearburn | linearlight | luminance |
multiply | negation | or | overlay | pinlight | red | reflect | saturation |
screen | seamless | seamless_mixed | shapeareamax | shapeareamax0 |
shapeareamin | shapeareamin0 |
shapeaverage | shapeaverage0 | shapemedian | shapemedian0 | shapemin |
shapemin0 | shapemax | shapemax0 |
shapeprevalent | softburn | softdodge | softlight | stamp | subtract | value
| vividlight | xor }.
'opacity' باید در
محدودهٔ '[0,1]'
(یا '[0%,100%]') باشد.
مقادیر
پیشفرض:
'blending_mode=alpha'، 'opacity=1' و
'selection_is=0'.
مثال:
[#1] image.jpg +drop_shadow , rescale2d[-1] ,200 rotate[-1] 20 +blend alpha
display_rgba[-2]
[#2] image.jpg testimage2d {w},{h} blend overlay
[#3] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex add,alpha,and,average,blue,burn,darken
[#4] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex
difference,divide,dodge,exclusion,freeze,grainextract,grainmerge
[#5] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex
green,hardlight,hardmix,hue,interpolation,lighten,lightness
[#6] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex
linearburn,linearlight,luminance,multiply,negation,or,overlay
[#7] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex
pinlight,red,reflect,saturation,screen,shapeaverage,softburn
[#8] command "ex : $""=arg repeat $""# +blend[0,1]
${arg{$>+1}} text_outline[-1] Mode:
testimage2d {w},{h} ex
softdodge,softlight,stamp,subtract,value,vividlight,xor
nblend:
[layer],blending_mode,_opacity[%],_selection_is={ 0:Base-layers |
1:Top-layers } |
blending_mode,_opacity[%]
blend_edges:
smoothness[%]>=0
ترکیب
تصاویر
انتخابشده
با یکدیگر
با استفاده
از حالت 'edges'.
مثال:
[#1] image.jpg testimage2d {w},{h} +blend_edges 0.8
blend_fade:
[fading_shape]
ترکیب
تصاویر
انتخابشده
با یکدیگر
با استفاده
از شکل
محوشدگی
مشخصشده.
مثال:
[#1] image.jpg testimage2d {w},{h} 100%,100%,1,1,'cos(y/10)' normalize[-1]
0,1 +blend_fade[0,1] [2]
blend_median:
ترکیب
تصاویر
انتخابشده
با یکدیگر
با استفاده
از حالت 'median'.
مثال:
[#1] image.jpg testimage2d {w},{h} +mirror[0] y +blend_median
blend_seamless:
_is_mixed_mode={ 0:No | 1:Yes
},_inner_fading[%]>=0,_outer_fading[%]>=0
ترکیب
تصاویر
انتخابشده
با استفاده
از حالت
ترکیب بدون
درز (مبتنی
بر پواسون).
مقادیر
پیشفرض:
'is_mixed=0'، 'inner_fading=0' و
'outer_fading=100%'.
fade_diamond:
0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
لوزیشکل
از تصاویر
انتخابشده.
مقادیر
پیشفرض:
'start=80' و 'end=90'.
مثال:
[#1] image.jpg testimage2d {w},{h} +fade_diamond 80,85
fade_linear:
_angle,0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
خطی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'angle=45'، 'start=30' و 'end=70'.
مثال:
[#1] image.jpg testimage2d {w},{h} +fade_linear 45,48,52
fade_radial:
0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
شعاعی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'start=30' و 'end=70'.
مثال:
[#1] image.jpg testimage2d {w},{h} +fade_radial 30,70
fade_x:
0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
افقی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'start=30' و 'end=70'.
مثال:
[#1] image.jpg testimage2d {w},{h} +fade_x 30,70
fade_y:
0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
عمودی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'start=30' و 'end=70'.
مثال:
[#1] image.jpg testimage2d {w},{h} +fade_y 30,70
fade_z:
0<=_start<=100,0<=_end<=100
ایجاد
محوشدگی
عرضی از
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'start=30' و 'end=70'.
sub_alpha:
[base_image],0<=_minimize_alpha<=1
محاسبه
اختلاف
کانال آلفا
(برعکس
ترکیب آلفا)
میان
تصاویر
انتخابشده
و تصویر
پایه
مشخصشده.
اختلاف
آلفای A-B
بهعنوان
تصویری با
کدر بودن (opacity)
'کمینه'
تعریف
میشود،
بهطوریکه
alpha_blend(B,A-B) = A باشد.
آرگومان
'minimize_alpha' برای
تسهیل قید
کمینهسازی
آلفا به کار
میرود.
هنگامی که
روی '1' تنظیم
شود، آلفا
مقید به
کمینه بودن
است.
هنگامی که
روی '0' تنظیم
شود، آلفا
بیشینه
خواهد بود
(یعنی '255').
مقدار
پیشفرض:
'minimize_alpha=1'.
مثال:
[#1] image.jpg testimage2d {w},{h} +sub_alpha[0] [1] display_rgba
11.20. توالی
تصاویر و
ویدئوها (Image Sequences
and Videos)
-----------------------------------------------------
animate:
filter_name,"param1_start,...,paramN_start","param1_end,...,paramN_end",nb_frames>=0,_output_frames={
0:No | 1:Yes },_output_filename |
delay>0,_back and forth={ 0:No | 1:Yes }
پویانمایی
فیلتر از
پارامترهای
آغازی تا
پارامترهای
پایانی یا
پویانمایی
تصاویر
انتخابشده
در یک پنجره
نمایش.
مقدار
پیشفرض:
'delay=30'.
مثال:
[#1] image.jpg animate flower,"0,3","20,8",9
apply_camera:
_"command",_camera_index>=0,_skip_frames>=0,_output_filename
اعمال
دستور
مشخصشده
روی جریان
زنده
دوربین، و
نمایش آن در
پنجره
نمایش [0].
این دستور
به
قابلیتهایی
از
کتابخانه OpenCV
نیاز دارد
(که بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'command=""'، 'camera_index=0'
(دوربین
پیشفرض)،
'skip_frames=0' و
'output_filename=""'.apply_files:
"filename_pattern",_"command",_first_frame>=0,_last_frame={
>=0 | -1:Last },_frame_step>=1,_output_filename
اعمال یک
دستور G'MIC روی
فایلهای
تصویر
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
مقادیر
پیشفرض:
'command=(undefined)'، 'first_frame=0'،
'last_frame=-1'، 'frame_step=1' و
'output_filename=(undefined)'.
apply_video:
video_filename,_"command",_first_frame>=0,_last_frame={ >=0 |
-1:Last },_frame_step>=1,_output_filename
اعمال یک
دستور G'MIC روی
تمام
فریمهای
فایل
ویدیویی
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
این دستور
به
ویژگیهایی
از
کتابخانهٔ
OpenCV نیاز دارد
(بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'first_frame=0'، 'last_frame=-1'،
'frame_step=1' و 'output_filename=(undefined)'.
average_files:
"filename_pattern",_first_frame>=0,_last_frame={ >=0 |
-1:Last },_frame_step>=1,_output_filename
میانگینگیری
از
فایلهای
تصویر
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
مقادیر
پیشفرض:
'first_frame=0'، 'last_frame=-1'،
'frame_step=1' و 'output_filename=(undefined)'.
average_video:
video_filename,_first_frame>=0,_last_frame={ >=0 | -1:Last
},_frame_step>=1,_output_filename
میانگینگیری
از
فریمهای
فایل
ویدیویی
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
این دستور
به
ویژگیهایی
از
کتابخانهٔ
OpenCV نیاز دارد
(بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'first_frame=0'، 'last_frame=-1'،
'frame_step=1' و 'output_filename=(undefined)'.
fade_files:
"filename_pattern",_nb_inner_frames>0,_first_frame>=0,_last_frame={
>=0 | -1:Last },_frame_step>=1,_output_filename
تولید یک
محوشدگی
زمانی (temporal fading) از
فایلهای
تصویر
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند 'avi' یا
'mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
مقادیر
پیشفرض:
'nb_inner_frames=10'، 'first_frame=0'،
'last_frame=-1'، 'frame_step=1' و
'output_filename=(undefined)'.
fade_video:
video_filename,_nb_inner_frames>0,_first_frame>=0,_last_frame={ >=0
| -1:Last },_frame_step>=1,_output_filename
ایجاد یک
دنباله
محوشدگی
زمانی از
فایل
ویدیویی
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
این دستور
به
ویژگیهایی
از
کتابخانهٔ
OpenCV نیاز دارد
(بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'nb_inner_frames=10'، 'first_frame=0'،
'last_frame=-1'، 'frame_step=1' و
'output_filename=(undefined)'.
files2video:
"filename_pattern",_output_filename,_fps>0,_codec
تبدیل چند
فایل به یک
فایل
ویدیویی
واحد.
مقادیر
پیشفرض:
'output_filename=output.mp4'، 'fps=25' و
'codec=mp4v'.
median_files:
"filename_pattern",_first_frame>=0,_last_frame={ >=0 |
-1:Last },_frame_step>=1,_frame_rows[%]>=1,_is_fast_approximation={
0:No | 1:Yes }
محاسبه
فریم میانه
(median) از
فایلهای
تصویر
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد، فریم
رندرشده در
حین پردازش
درون آن
نمایش داده
میشود.
مقادیر
پیشفرض:
'first_frame=0'، 'last_frame=-1'،
'frame_step=1'، 'frame_rows=20%' و
'is_fast_approximation=0'.
median_video:
video_filename,_first_frame>=0,_last_frame={ >=0 | -1:Last
},_frame_step>=1,_frame_rows[%]>=1,_is_fast_approximation={ 0:No |
1:Yes }
محاسبه
میانهٔ
تمامی
فریمهای
یک فایل
ویدیویی
ورودی،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد، فریم
رندرشده در
حین پردازش
درون آن
نمایش داده
میشود.
این دستور
به
ویژگیهایی
از
کتابخانهٔ
OpenCV نیاز دارد
(بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'first_frame=0'، 'last_frame=-1'،
'frame_step=1'، 'frame_rows=100%' و
'is_fast_approximation=1'.
morph:
nb_inner_frames>=1,_smoothness>=0,_precision>=0
ایجاد
دنباله
دگرریسی (morphing)
میان
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'smoothness=0.1' و 'precision=7'.
مثال:
[#1] image.jpg +rotate 20,1,1,50%,50% morph 9
morph_files:
"filename_pattern",_nb_inner_frames>0,_smoothness>=0,_precision>=0,_first_frame>=0,_last_frame={
>=0 | -1:Last },_frame_step>=1,_output_filename
تولید یک
دگرریسی
زمانی (temporal morphing)
از
فایلهای
تصویر
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
مقادیر
پیشفرض:
'nb_inner_frames=10'، 'smoothness=0.1'،
'precision=7'، 'first_frame=0'،
'last_frame=-1'،
'frame_step=1' و 'output_filename=(undefined)'.
morph_rbf:
nb_inner_frames>=1,xs0[%],ys0[%],xt0[%],yt0[%],...,xsN[%],ysN[%],xtN[%],ytN[%]
ایجاد
دنباله
دگرریسی
میان
تصاویر
انتخابشده،
با استفاده
از
درونیابی
مبتنی بر RBF.
هر آرگومان
(xsk,ysk)-(xtk,ytk)
بهترتیب
متناظر با
مختصات یک
نقطهٔ
کلیدی
روی تصاویر
مبدأ و مقصد
است.
مجموعهٔ
تمام نقاط
کلیدی،
دگرشکلی
کلی تصویر
را مشخص
میکند.
morph_video:
video_filename,_nb_inner_frames>0,_smoothness>=0,_precision>=0,_first_frame>=0,_last_frame={
>=0 | -1:Last },_frame_step>=1,_output_filename
تولید یک
دگرریسی
زمانی از
فایل
ویدیویی
ورودی
مشخصشده،
بهصورت
جریانی.
اگر یک
پنجرهٔ
نمایش باز
باشد،
فریمهای
رندرشده در
حین پردازش
درون آن
نمایش داده
میشوند.
نام فایل
خروجی
میتواند
دارای
پسوند '.avi' یا
'.mp4'
(ذخیرهشده
بهعنوان
ویدیو)، یا
هر پسوند
فایل
تصویری
معمول دیگر
(ذخیرهشده
بهعنوان
دنبالهای
از تصاویر)
باشد.
این دستور
به
ویژگیهایی
از
کتابخانهٔ
OpenCV نیاز دارد
(بهطور
پیشفرض در
G'MIC فعال
نیست).
مقادیر
پیشفرض:
'nb_inner_frames=10'، 'smoothness=0.1'،
'precision=7'، 'first_frame=0'،
'last_frame=-1'،
'frame_step=1' و 'output_filename=(undefined)'.
register_nonrigid:
[destination],_smoothness>=0,_precision>0,_nb_scale>=0
انطباق
تصاویر
مبدأ
انتخابشده
با تصویر
مقصد
مشخصشده،
با استفاده
از پیچش
غیرصلب (non-rigid warp).
مقادیر
پیشفرض:
'smoothness=0.2'، 'precision=7' و
'nb_scale=0(auto)'.
مثال:
[#1] image.jpg +rotate 20,1,1,50%,50% +register_nonrigid[0] [1]
register_rigid:
[destination],_smoothness>=0,_boundary_conditions={ 0:Dirichlet |
1:Neumann | 2:Periodic | 3:Mirror }
انطباق
تصاویر
مبدأ
انتخابشده
با تصویر
مقصد
مشخصشده،
با استفاده
از پیچش صلب
(انتقال).
مقادیر
پیشفرض:
'smoothness=0.1%' و 'boundary_conditions=0'.
مثال:
[#1] image.jpg +shift 30,20 +register_rigid[0] [1]
transition:
[transition_shape],nb_added_frames>=0,100>=shading>=0,_single_frame_only={
-1:Disabled | >=0 }
تولید یک
دنبالهٔ
گذار (transition)
میان
تصاویر
انتخابشده.
مقادیر
پیشفرض:
'shading=0' و 'single_frame_only=-1'.
مثال:
[#1] image.jpg +mirror c 100%,100% plasma[-1] 1,1,6 transition[0,1] [2],5
transition3d:
_nb_frames>=2,_nb_xtiles>0,_nb_ytiles>0,_axis_x,_axis_y,_axis_z,_is_antialias={
0:No | 1:Yes }
ایجاد
دنباله
گذار
سهبعدی
میان
تصاویر
متوالی
انتخابشده.
'axis_x'، 'axis_y' و 'axis_z'
میتوانند
بهعنوان
عبارتهای
ریاضی،
بسته به 'x' و
'y' مقداردهی
شوند.
مقادیر
پیشفرض:
'nb_frames=10'، 'nb_xtiles=nb_ytiles=3'،
'axis_x=1'، 'axis_y=1'، 'axis_z=0'
و
'is_antialias=1'.
مثال:
[#1] image.jpg +blur 5 transition3d 9 display_rgba
video2files:
input_filename,_output_filename,_first_frame>=0,_last_frame={ >=0 |
-1:Last },_frame_step>=1
تقسیم فایل
ویدیویی
ورودی
مشخصشده
به
فایلهای
تصویری
مجزا، هر
فریم در یک
فایل.
فریمهای
آغازین و
پایانی و
همچنین گام
میان
فریمها
قابل تعیین
است.
مقادیر
پیشفرض:
'output_filename=frame.png'، 'first_frame=0'،
'last_frame=-1' و 'frame_step=1'.
11.21. توابع
سهولت (Convenience Functions)
-------------------------------------
add_copymark:
افزودن
پسوند copymark به
نامهای
تصاویر
انتخابشده.
alert:
_title,_message,_label_button1,_label_button2,...
نمایش یک
کادر هشدار
و انتظار
برای
انتخاب
کاربر.
اگر تنها یک
تصویر در
انتخاب
باشد،
بهعنوان
آیکون برای
کادر هشدار
استفاده
میشود.
مقادیر
پیشفرض:
'title=[G'MIC Alert]' و 'message=This is an alert box.'.
arg0:
n>=0,_arg_0,...,_arg_N
بازگرداندن
n-اُمین
آرگومان از
فهرست
آرگومانهای
مشخصشده
(جایی که 'n'
از '0' تا 'N'
است).
arg1:
n>=1,_arg_1,...,_arg_N
بازگرداندن
n-اُمین
آرگومان از
فهرست
آرگومانهای
مشخصشده
(جایی که 'n'
از '1' تا 'N'
است).
arg2var:
variable_name,argument_1,...,argument_N
بهازای هر i
در [1...N]، مقدار
'variable_name$i=argument_i' تنظیم
میشود.
نام متغیر
برای
کارآمد
بودن این
دستور باید
سراسری (global)
باشد (یعنی
با یک زیرخط
آغاز شود).
average_vectors:
بازگرداندن
میانگین
برداریِ
آخرین
تصویر از
میان
تصاویر
انتخابشده.
base642img:
"base64_string"
رمزگشایی
رشته
کدگذاریشده
با base64
دادهشده
بهعنوان
یک تصویر
تازه
درجشده در
انتهای
فهرست.
رشتهٔ
آرگومان
باید با
استفاده از
دستور 'img2base64'
تولید شده
باشد.
base642uint8:
"base64_string"
رمزگشایی
رشته
کدگذاریشده
با base64
دادهشده
بهعنوان
یک تصویر
تکستونی
تازه
درجشده در
انتهای
فهرست.
رشتهٔ
آرگومان
باید با
استفاده از
دستور 'uint82base64'
تولید شده
باشد.
basename:
file_path,_variable_name_for_folder
بازگرداندن
نام پایه (basename)
یک مسیر
فایل، و
بهصورت
اختیاری
مکان پوشهٔ
آن.
در صورت
تعیین،
'variable_name_for_folder' باید
با یک زیرخط
آغاز شود
(متغیر
سراسری
قابل
دسترسی از
تابع
فراخواننده).
bin:
binary_int1,...
چاپ اعداد
صحیح
دودویی
مشخصشده
در
نمایشهای
هشتهشتی،
دهدهی،
شانزدهشانزدهی
و رشتهای
آنها.
bin2dec:
binary_int1,...
تبدیل
اعداد صحیح
دودویی
مشخصشده
به
بازنمایی
دهدهی
آنها.
cat:
filename,_display_line_numbers={ 0:No | 1:Yes },_line_selection,
چاپ خطوط
انتخابشده
از نام فایل
دادهشده
روی خروجی
استاندارد
(stdout).
مقادیر
پیشفرض:
'display_line_numbers=1' و
'line_selection=^'.color2name:
R,G,B
نامی
(بهصورت یک
رشته، به
زبان
انگلیسی) را
که بیشترین
مطابقت را
با رنگ
مشخصشده
دارد
برمیگرداند.
covariance_vectors:
_avg_outvarname
ماتریس
کوواریانس
رنگهای
دارای
مقدار
برداری را
در آخرین
تصویر از
تصاویر
انتخابشده
برمیگرداند
(برای تعداد
دلخواهی از
کانالها).
پارامتر
'avg_outvarname'
بهعنوان
نام متغیری
استفاده
میشود که
مقدار
بردار
میانگین را
دریافت
میکند.
da_freeze:
هر یک از
آرایههای
پویای
انتخابشده
را به یک
تصویر
۱-ستونی که
ارتفاع آن
برابر با
تعداد
عناصر
آرایه است
تبدیل
میکند.
date:
تاریخ جاری
را بهصورت
رشته 'YYYY/MM/DD'
برمیگرداند.
dec:
decimal_int1,...
اعداد صحیح
دهدهی
مشخصشده
را در
نمایشهای
دودویی،
هشتهشتی،
شانزدهشانزدهی
و رشتهای
چاپ
میکند.
dec2str:
decimal_int1,...
اعداد صحیح
دهدهی
مشخصشده
را به نمایش
رشتهای
آنها
تبدیل
میکند.
dec2bin:
decimal_int1,...
اعداد صحیح
دهدهی
مشخصشده
را به
نمایشهای
دودویی
آنها
تبدیل
میکند.
dec2hex:
decimal_int1,...
اعداد صحیح
دهدهی
مشخصشده
را به
نمایشهای
شانزدهشانزدهی
آنها
تبدیل
میکند.
dec2oct:
decimal_int1,...
اعداد صحیح
دهدهی
مشخصشده
را به
نمایشهای
هشتهشتی
آنها
تبدیل
میکند.
filename:
filename,_number1,_number2,...,_numberN
نام فایلی
شمارهگذاریشده
با
شاخصهای
مشخصشده
را
برمیگرداند.
filename_rand:
یک نام فایل
تصادفی
برای ذخیره
دادههای
موقت
برمیگرداند.
filename_dated:
filename
نام فایل
مشخصشده
را به نامی
دارای
برچسب
تاریخ جاری
تبدیل
میکند
('filename_YYYYMMDD_HHMMSS.ext').
files (+):
_mode,path
فهرست
فایلها
و/یا
زیرپوشهها
را از مسیر
مشخصشده
برمیگرداند.
'path' بهطور
اختیاری
میتواند
یک الگوی
تطابق باشد.
'mode'
میتواند {
0:Files only | 1:Directories only | 2:Files + Directories }
باشد.
برای
بازگرداندن
مسیرهای
کامل
بهجای
تنها
نامفایلها،
مقدار '3' را
به 'mode' اضافه
کنید.
مقدار
پیشفرض:
'mode=5'.
files2img:
_mode,path
تصویر
جدیدی درج
میکند که
در آن هر
پیکسل با
مقدار
برداری،
رشتهای
است که
نامفایلهای
بازگرداندهشده
توسط دستور
files را
کدگذاری
میکند.
برای
مدیریت
فهرستی از
نامهای
فایل که
شامل
نویسههایی
با معنای
خاص در زبان
G'MIC هستند
(مانند
فاصلهها
یا
ویرگولها)
کاربردی
است.
fitratio_wh:
min_width,min_height,ratio_wh
اندازه
دوبعدی 'width,height'
را
برمیگرداند
که از 'min_width,min_height'
بزرگتر
بوده و نسبت
w/h مشخصشده
را داراست.
fitscreen:
width,height,_minimal_size[%]>0,_maximal_size[%]>0 |
[image],_minimal_size[%]>0,_maximal_size[%]>0
اندازه «ideal»
بهصورت WxH
را برای
پنجرهای
جهت نمایش
تصویری با
اندازه
مشخص بر روی
صفحه
برمیگرداند.
مقادیر
پیشفرض:
'depth=1'، 'minimal_size=128' و
'maximal_size=85%'.
fontchart:
display_mode.
جدول قلم G'MIC
را در
انتهای
فهرست
تصاویر درج
میکند.
'display_mode'
میتواند { 0:
List of characters | N: List of fonts with height 'N'}
باشد.
مقدار
پیشفرض:
'display_mode=0'.
مثال:
[#1] fontchart 0 fontchart 64
fps:
تعداد
دفعاتی که
این تابع در
هر ثانیه
فراخوانی
میشود را
برمیگرداند،
یا اگر این
اطلاعات
هنوز در
دسترس
نباشد،
مقدار -1 را
برمیگرداند.
برای نمایش
نرخ فریم
هنگام
نمایش
پویانماییها
مفید است.
hex:
hexadecimal_int1,...
اعداد صحیح
شانزدهشانزدهی
مشخصشده
را در
نمایشهای
دودویی،
هشتهشتی،
دهدهی و
رشتهای
چاپ
میکند.
hex2dec:
hexadecimal_int1,...
اعداد صحیح
شانزدهشانزدهی
مشخصشده
را به
نمایشهای
دهدهی
آنها
تبدیل
میکند.
hex2img:
"hexadecimal_string"
تصویر جدید 1xN
را در
انتهای
فهرست با
مقادیر
مشخصشده
توسط رشته
کدگذاریشده
با
هگزادسیمال
دادهشده
درج
میکند.
hex2str:
hexadecimal_string
رشته
شانزدهشانزدهی
مشخصشده
را به یک
رشته تبدیل
میکند.
همچنین
ببینید: str2hex.
img2base64:
_encoding={ 0:Base64 | 1:Base64url },_store_names={ 0:No | 1:Yes }
تصاویر
انتخابشده
را بهصورت
یک رشته
کدگذاریشده
با base64
کدگذاری
میکند.
سپس
میتوان
تصاویر را
با استفاده
از دستور
'base642img'
رمزگشایی
کرد.
مقادیر
پیشفرض:
'encoding=0' و 'store_names=1'.
img2hex:
نمایش
آخرین
تصویر را
بهصورت یک
رشته
کدگذاریشده
با
هگزادسیمال
برمیگرداند.
تصویر
ورودی باید
مقادیری از
نوع عدد
صحیح در
بازه [0,255]
داشته
باشد.
img2str:
محتوای
تصاویر
انتخابشده
را بهصورت
رشتههای
ورودی خاص G'MIC
برمیگرداند.
indexof:
string,_arg_0,...,_arg_N
کوچکترین
شاخص 'i' را
برمیگرداند
بهگونهای
که 'arg_i==string' باشد.
اگر هیچ 'arg_i'
مطابقت
نداشته
باشد، '-1'
برگردانده
میشود.
is_mesh3d:
اگر تمامی
تصاویر
انتخابشده
مشهای
سهبعدی
باشند
مقدار 1 و در
غیر این
صورت 0 را
برمیگرداند.
is_change:
_value={ 0:False | 1:True }
نشانگر 'is_change'
مرتبط با
فهرست
تصاویر را
فعال یا
غیرفعال
میکند.
این نشانگر
به مفسر
اطلاع
میدهد که
آیا فهرست
تصاویر پس
از پایان خط
لوله باید
نمایش داده
شود یا خیر.
مقدار
پیشفرض:
'value=1'.
is_half:
اگر نوع
پیکسلهای
تصویر
محدود به half-float
باشد،
مقدار 1 را
برمیگرداند.
is_ext:
filename,_extension
اگر نام
فایل
مشخصشده
پسوند
دادهشده
را داشته
باشد،
مقدار 1 را
برمیگرداند.
is_image_arg:
string
اگر رشته
مشخصشده
یک آرگومان
تصویر تکی
معتبر
مانند '[ind]'
باشد،
مقدار 1 را
برمیگرداند.
is_pattern:
string
اگر رشته
مشخصشده
شبیه به یک
الگوی
ترسیم '0x......'
باشد،
مقدار 1 را
برمیگرداند.
is_videofilename:
filename
اگر پسوند
نام فایل
مشخصشده
مختص
فایلهای
ویدئویی
باشد،
مقدار 1 را
برمیگرداند.
is_macos:
اگر
سیستمعامل
رایانه
فعلی Darwin (MacOS)
باشد مقدار 1
و در غیر این
صورت 0 را
برمیگرداند.
is_windows:
اگر
سیستمعامل
رایانه
فعلی Windows باشد
مقدار 1 و در
غیر این
صورت 0 را
برمیگرداند.
lof:
feature
فهرست
ویژگیهای
مشخصشده
را (جداشده
با ویرگول)
برای هر
تصویر
انتخابشده
برمیگرداند.
math_lib:
رشتهای را
برمیگرداند
که
مجموعهای
از چندین
ماکروی
مفید را
برای
ارزیاب
ریاضی
تعبیهشده
تعریف
میکند.
mad:
مقدار MAD
(انحراف
مطلق میانه)
آخرین
تصویر
انتخابشده
را
برمیگرداند.
فرمول MAD
بهصورت MAD =
med_i|x_i-med_j(x_j)| تعریف
میشود
max_w:
بیشینه عرض
در بین
تصاویر
انتخابشده
را
برمیگرداند.
max_h:
بیشینه
ارتفاع در
بین تصاویر
انتخابشده
را
برمیگرداند.
max_d:
بیشینه عمق
در بین
تصاویر
انتخابشده
را
برمیگرداند.
max_s:
بیشینه طیف
در بین
تصاویر
انتخابشده
را
برمیگرداند.
max_wh:
بیشینه
اندازه wxh از
تصاویر
انتخابشده
را
برمیگرداند.
max_ds:
بیشینه
اندازه dxs از
تصاویر
انتخابشده
را
برمیگرداند.
max_whd:
بیشینه
اندازه wxhxd از
تصاویر
انتخابشده
را
برمیگرداند.
max_whds:
بیشینه
اندازه wxhxdxs از
تصاویر
انتخابشده
را
برمیگرداند.
median_vectors:
مقدار
بردار
میانه
آخرین
تصویر
انتخابشده
را
برمیگرداند
(میانه
بهصورت
کانالبهکانال
محاسبه
میشود)
min_w:
کمینه عرض
در بین
تصاویر
انتخابشده
را
برمیگرداند.
min_h:
کمینه
ارتفاع در
بین تصاویر
انتخابشده
را
برمیگرداند.min_d:
بازگرداندن
کمترین عمق
در میان
تصویرهای
انتخابشده.
min_s:
بازگرداندن
کمترین
اندازه s در
میان
تصویرهای
انتخابشده.
min_wh:
بازگرداندن
کمترین
اندازه wxh در
میان
تصویرهای
انتخابشده.
min_ds:
بازگرداندن
کمترین
اندازه dxs در
میان
تصویرهای
انتخابشده.
min_whd:
بازگرداندن
کمترین
اندازه wxhxd در
میان
تصویرهای
انتخابشده.
min_whds:
بازگرداندن
کمترین
اندازه wxhxdxs در
میان
تصویرهای
انتخابشده.
name2color:
name
بازگرداندن
رنگ R,G,B
متناظر با
نام رنگ
مشخصشده.
nmd (+):
میانبُری
برای دستور
'named'.
named (+):
_mode,"name1","name2",...
بازگرداندن
مجموعه
نمایههای
متناظر با
تصویرهای
گزینششده
با نامهای
مشخصشده.
پس از
بازگشت این
دستور،
وضعیت (status)
شامل
فهرستی از
نمایهها
(اعداد صحیح
بدون علامت)
خواهد بود
که با کاما
از هم جدا
شدهاند (یا
یک رشته
خالی در
صورتی که
هیچ تصویری
با آن
نامها
یافت نشود).
(معادل
دستور
میانبُر
'nmd').
'mode'
میتواند { 0:All
indices (default) | 1:Lowest index | 2:Highest index | 3:All indices (case
insensitive) | 4:Lowest index (case
insensitive) | 5:Highest index (case insensitive)}
باشد.
narg:
arg_1,arg_2,...,arg_N
بازگرداندن
تعداد
آرگومانهای
مشخصشده.
normalize_filename:
filename
بازگرداندن
نسخه
«عادیسازیشده»
از نام فایل
مشخصشده،
بدون
فاصلهها و
حروف بزرگ.
oct:
octal_int1,...
چاپ اعداد
صحیح
هشتهشتی (octal)
مشخصشده
در
نمایشهای
دودویی،
دهدهی،
شانزدهشانزدهی
و رشتهای
آنها.
oct2dec:
octal_int1,...
تبدیل
اعداد صحیح
هشتهشتی (octal)
مشخصشده
به
نمایشهای
دهدهی
آنها.
path_cache:
بازگرداندن
یک مسیر
برای ذخیره
فایلهای
داده G'MIC برای
یک کاربر (که
مقدار آن
وابسته به
سیستمعامل
است).
path_cached_file:
"filename"
بازگرداندن
مسیر فایل
کَششده
مشخص، یا ""
در صورتی که
فایل هنوز
کَش نشده
باشد.
path_current:
بازگرداندن
پوشه فعلی
که G'MIC از آنجا
اجرا شده
است.
path_gimp:
بازگرداندن
یک مسیر
برای ذخیره
فایلهای
پیکربندی GIMP
برای یک
کاربر (که
مقدار آن
وابسته به
سیستمعامل
است).
path_tmp:
بازگرداندن
یک مسیر
برای ذخیره
فایلهای
موقت (که
مقدار آن
وابسته به
سیستمعامل
است).
remove_copymark:
حذف پسوند copymark
در نام
تصویرهای
انتخابشده.
reset:
بازنشانی
پارامترهای
سراسری
محیط مفسر.
shell_cols:
بازگرداندن
تعداد
تخمینی
ستونهای
شل (shell) جاری.
size_value:
بازگرداندن
اندازه (به
بایت)
مقادیر
تصویر.
std_noise:
بازگرداندن
انحراف
معیار
تخمینی
نویز برای
آخرین
تصویر
انتخابشده.
str:
string
چاپ رشته
مشخصشده
در
نمایشهای
دودویی،
هشتهشتی،
دهدهی و
شانزدهشانزدهی
آن.
strbuffer:
buffer_size
بازگرداندن
رشتهای
توصیفکننده
اندازه
برای
اندازه
بافر
مشخصشده.
str2hex:
"string"
تبدیل
آرگومان
رشتهای
مشخصشده
به
دنبالهای
از مقادیر
شانزدهشانزدهی
(به صورت یک
رشته
بازگردانده
میشود).
همچنین
ببینید: hex2str.
مثال:
[#1] hex=${"str2hex
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ 48656c6c6f206d7920667269656e6473
[gmic]-0./ End G'MIC interpreter.
strcapitalize:
string
بزرگنویسی
حرف نخست
رشته
مشخصشده.
strcontains:
string1,string2
بازگرداندن
1 در صورتی که
رشته اول
شامل رشته
دوم باشد.
strclut:
"string"
بازگرداندن
نسخه
سادهشده
رشته
مشخصشده
که
میتواند
به عنوان
نام CLUT
استفاده
شود.
strlen:
string1
بازگرداندن
طول
آرگومان
رشتهای
مشخصشده.
strlowercase:
string
بازگرداندن
نسخه حروف
کوچک از
رشته
مشخصشده.
strreplace:
string,search,replace
جستجو و
جایگزینی
زیررشتهها
در یک رشته
ورودی.
struppercase:
string
بازگرداندن
نسخه حروف
بزرگ از
رشته
مشخصشده.
strvar:
"string"
بازگرداندن
نسخه
سادهشده
رشته
مشخصشده
که
میتواند
به عنوان
نام متغیر
استفاده
شود.
(نسخهای که
خروجی با
حروف کوچک و
بدون فراتر
رفتن از ۱۲۸
نویسه
تولید
میکند).
strcasevar:
"string"
بازگرداندن
نسخه
سادهشده
رشته
مشخصشده
که
میتواند
به عنوان
نام متغیر
استفاده
شود.
(نسخهای که
بزرگی و
کوچکی حروف
رشته اصلی
را حفظ
میکند و از
۱۲۸ نویسه
فراتر
نمیرود).
strver:
_version,_prerelease
بازگرداندن
شماره نسخه
مشخصشده
مفسر G'MIC به
صورت یک
رشته.
مقدار
پیشفرض:
'version=$_version' و 'prerelease='.
tic:
راهاندازی
زمانسنج tic-toc.
از این
دستور به
همراه 'toc'
استفاده
کنید.
time:
بازگرداندن
زمان فعلی
به عنوان یک
رشته 'hh:mm:ss'.
toc:
نمایش زمان
سپریشده
در
زمانسنج tic-toc
از زمان
آخرین
فراخوانی
'tic'.
این دستور
زمان
سپریشده
را در مقدار
وضعیت (status)
بازمیگرداند.
از این
دستور به
همراه 'tic'
استفاده
کنید.
uint82base64:
_encoding={ 0:Base64 | 1:Base64url }
کدگذاری
مقادیر
آخرین
تصویر از
تصویرهای
انتخابشده
به صورت یک
رشته
کدگذاریشده
با base64.
این رشته
میتواند
با دستور
'base642uint8'
رمزگشایی
شود.
تصویرهای
انتخابشده
باید دارای
مقادیری
باشند که
اعداد صحیح
در [0,255] هستند.
مقادیر
پیشفرض:
'encoding=0'.
11.22. سایر
دستورهای
تعاملی (Other Interactive
Commands)
-----------------------------------------------------
demos:
_run_in_parallel={ 0:No | 1:Yes | 2:Auto }
نمایش
منویی برای
انتخاب و
مشاهده
تمام
دموهای
تعاملی G'MIC.
x_2048:
اجرای بازی
2048.
x_blobs:
اجرای
ویرایشگر
حبابها (blobs).
../img/x_blobs.jpg [image: 'x_blobs']
x_bouncing:
اجرای دموی
توپهای
جهنده.
x_color_curves:
_colorspace={ rgb | cmy | cmyk | hsi | hsl | hsv | lab | lch | ycbcr | last
}
اعمال
منحنیهای
رنگ بر روی
تصویرهای RGB[A]
انتخابشده
با استفاده
از یک پنجره
تعاملی.
تنظیم 'colorspace' به
'last' برای
اعمال
آخرین
منحنیهای
رنگ
تعریفشده
بدون باز
کردن
پنجرههای
تعاملی.
مقدار
پیشفرض:
'colorspace=rgb'.
x_colorize:
_is_lineart={ 0:No | 1:Yes },_max_resolution={ 0 | >=128
},_multichannels_output={ 0:No | 1:Yes
},_[palette1],_[palette2],_[grabber1]
رنگی کردن
تصویرهای
سیاهوسفید
انتخابشده
با استفاده
از یک پنجره
تعاملی.
هنگامی که 0<
باشد،
آرگومان
'max_resolution' حداکثر
وضوح تصویر
استفادهشده
در پنجره
تعاملی را
مشخص
میکند.
مقادیر
پیشفرض:
'is_lineart=1'، 'max_resolution=1024' و
'multichannels_output=0'.
x_connect4:
اجرای بازی
Connect Four.
xz:
میانبُری
برای دستور
'x_crop'.x_crop:
برش تعاملی
تصاویر
انتخابشده.
اگر چندین
تصویر
ورودی
انتخاب شده
باشند،
همان برش
روی همه
تصاویر
اعمال
میشود.
(معادل
دستور
میانبُر
'xz').
x_cut:
محدود کردن
تعاملی
بازه
مقادیر
تصاویر
انتخابشده.
x_fire:
اجرای
پیشنمایش
جلوه آتش.
x_fireworks:
اجرای
پیشنمایش
آتشبازی.
x_fisheye:
اجرای
پیشنمایش
جلوه
چشمماهی.
x_fourier:
اجرای
پیشنمایش
فیلترسازی
فوریه.
x_grab_color:
_variable_name
باز کردن
ابزارک
قطرهچکان
(انتخابگر
رنگ) از
اولین
تصویر
انتخابشده.
آرگومان
'variable_name' متغیری
را مشخص
میکند که
در هر زمان
مقادیر رنگ
انتخابشده
را در خود
نگه
میدارد.
اختصاص
مقدار '-1' به
آن، پنجره
تعاملی را
مجبور به
بستهشدن
میکند.
مقادیر
پیشفرض:
'variable_name=xgc_variable'.
x_hanoi:
اجرای بازی
برج هانوی.
x_histogram:
اجرای
پیشنمایش
بافتنگار
(هیستوگرام).
x_hough:
اجرای
پیشنمایش
تبدیل هاف.
x_jawbreaker:
0<_width<20,0<_height<20,0<_nb_colors<=8
اجرای بازی
Jawbreaker.
مقادیر
پیشفرض:
'width=12'، 'height=13' و
'nb_colors=5'.
x_landscape:
اجرای
پیشنمایش
منظره
مجازی.
x_life:
اجرای بازی
زندگی (game of life).
x_light:
اجرای
پیشنمایش
جلوه نور.
x_mandelbrot:
_is_julia={ 0:No | 1:Yes },_c0r,_c0i
اجرای
کاوشگر
مندلبرو/ژولیا.
x_mask_color:
_colorspace={ all | rgb | lrgb | ycbcr | lab | lch | hsv | hsi | hsl | cmy |
cmyk | yiq },_spatial_tolerance>=0,_color_tolerance>=0
انتخاب
تعاملی یک
رنگ و
افزودن یک
کانال آلفا
شامل ماسک
رنگ متناظر.
آرگومان 'colorspace'
به معیار
رنگی
استفادهشده
برای
محاسبه
شباهتهای
رنگی اشاره
دارد و
اساساً
میتواند
یکی از { rgb | lrgb | ycbcr | lab | lch
| hsv | hsi | hsl | cmy | cmyk | yiq } باشد.
همچنین
میتوانید
با تنظیم
'colorspace' به صورت
'colorspace_channel' یک
کانال خاص
از این فضای
رنگی را
انتخاب
کنید
(برای مثال
'hsv_h' برای
فام).
مقادیر
پیشفرض:
'colorspace=all'، 'spatial_tolerance=5' و
'color_tolerance=5'.
x_metaballs3d:
اجرای
پیشنمایش
متابالهای
سهبعدی.
x_minesweeper:
8<=_width<=20,8<=_height<=20
اجرای بازی
مینروب (Minesweeper).
x_minimal_path:
اجرای
پیشنمایش
مسیر
کمینه.
x_morph:
_nb_frames>=2,_preview_fidelity={ 0:Coarsest | 1:Coarse | 2:Normal |
3:Fine | 4:Finest }
اجرای
دگردیسنده
تعاملی
تصویر (image morpher).
مقادیر
پیشفرض:
'nb_frames=16' و 'preview_fidelity=3'.
x_pacman:
اجرای بازی
پکمن (pacman).
x_paint:
اجرای نقاش
تعاملی.
x_plasma:
اجرای
پیشنمایش
جلوه
پلاسما.
x_quantize_rgb:
_nbcolors>=2
اجرای
پیشنمایش
کوانتیزهسازی
رنگ RGB.
x_reflection3d:
اجرای
پیشنمایش
بازتاب
سهبعدی.
x_rubber3d:
اجرای
پیشنمایش
شیء
لاستیکی
سهبعدی.
x_segment:
_max_resolution={ 0:Auto | >=128 }
بخشبندی
تعاملی
پیشزمینه
از
پسزمینه
در تصاویر
مات RGB
انتخابشده.
تصاویر RGBA با
کانالهای
آلفای
دودویی را
بازمیگرداند.
مقدار
پیشفرض:
'max_resolution=1024'.
x_select_color:
_variable_name
نمایش یک
انتخابگر
رنگ RGB یا RGBA.
آرگومان
'variable_name' متغیری
را مشخص
میکند که
مقادیر رنگ
انتخابشده
را (به صورت
R,G,B,[A])
در هر زمان
در خود نگه
میدارد.
مقدار آن
رنگ اولیه
انتخابشده
را مشخص
میکند.
اختصاص
مقدار '-1' به
آن، پنجره
تعاملی را
مجبور به
بستهشدن
میکند.
مقدار
پیشفرض:
'variable_name=xsc_variable'.
x_select_function1d:
_variable_name,_background_curve_R,_background_curve_G,_background_curve_B
باز کردن یک
پنجره
تعاملی که
در آن کاربر
میتواند
تابع
یکبعدی
خود را
تعریف کند.
اگر تصویری
انتخاب شده
باشد، برای
نمایش
اطلاعات
اضافی به
کار میرود:
- سطر اول
مقادیر یک
منحنی
پسزمینه
نمایش داده
شده در
پنجره را
مشخص
میکند
(مثلاً یک
بافتنگار).
- سطرهای
دوم، سوم و
چهارم
مؤلفههای
رنگی R,G,B
نمایش داده
شده در کنار
محورهای X و Y
را مشخص
میکنند.
آرگومان
'variable_name' متغیری
را مشخص
میکند که
در هر زمان
شامل نقاط
کلیدی تابع
انتخابشده
است.
اختصاص
مقدار '-1' به
آن، پنجره
تعاملی را
مجبور به
بستهشدن
میکند.
مقادیر
پیشفرض:
'variable_name=xsf_variable'،
'background_curve_R=220'،
'background_curve_G=background_curve_B=background_curve_
T'.
x_select_palette:
_variable_name,_number_of_columns={ 0:Auto | >0 }
باز کردن
ابزارک
انتخابگر
رنگ RGB یا RGBA از
یک پالت.
پالت به
عنوان یک
تصویر
انتخابشده
داده
میشود.
آرگومان
'variable_name' متغیری
را مشخص
میکند که
در هر زمان
مقادیر رنگ
انتخابشده
را (به صورت
R,G,B,[A])
در خود نگه
میدارد.
اختصاص
مقدار '-1' به
آن، پنجره
تعاملی را
مجبور به
بستهشدن
میکند.
مقادیر
پیشفرض:
'variable_name=xsp_variable' و
'number_of_columns=2'.
x_shadebobs:
اجرای
پیشنمایش
جلوه shade bobs.
x_spline:
اجرای
ویرایشگر
منحنی
اسپلاین (spline).
x_starfield3d:
اجرای
پیشنمایش
میدان
ستارگان
سهبعدی.
x_tetris:
اجرای بازی
تتریس.
x_threshold:
آستانهگذاری
تعاملی
تصاویر
انتخابشده.
x_tictactoe:
اجرای بازی
دوز (tic-tac-toe).
x_tixy:
"expression"
متحرکسازی
عبارت
ریاضی
مشخصشده
با شبکهای
۱۶x۱۶ از
دایرهها،
با استفاده
از قوانین
شرح داده
شده در https://tixy.land.
x_warp:
_nb_keypoints_xgrid>=2,_nb_keypoints_ygrid>=2,_nb_keypoints_contours>=0,_preview_fidelity={
0:Coarsest | 1:Coarse | 2:Normal | 3:Fine | 4:Finest },
_[background_image],0<=_background_opacity<=1
اجرای
اعوجاجدهنده
تعاملی
تصویر (image warper).
مقادیر
پیشفرض:
'nb_keypoints_xgrid=nb_keypoints_ygrid=2'،
'nb_keypoints_contours=0' و 'preview_fidelity=1'.
x_waves:
اجرای
پیشنمایش
امواج
تصویر.
x_whirl:
_opacity>=0
اجرای
پیشنمایش
گردابهای
فرکتالی.
مقادیر
پیشفرض:
'opacity=0.2'.
12. مثالهای
کاربرد (Examples of Use)
-----------------------------------
'gmic' یک ابزار
عمومی
پردازش
تصویر است
که
میتواند
در طیف
گستردهای
از
موقعیتها
استفاده
شود.
مثالهای
زیر
کاربردهای
ممکن این
ابزار را
نشان
میدهند:
### مشاهده
فهرستی از
تصاویر:
$ gmic file1.bmp file2.jpeg
### تبدیل یک
فایل
تصویر:
$ gmic input.bmp output output.jpg
### ایجاد یک
تصویر حجمی
از یک توالی
ویدیویی:
$ gmic input.mpg append z output output.hdr
### محاسبه
نُرم
گرادیان
تصویر:
$ gmic input.bmp gradient_norm
###
نوفهزدایی
از یک تصویر
رنگی:
$ gmic image.jpg denoise 30,10 output denoised.jpg
### ترکیب دو
تصویر با
استفاده از
آمیختگی
لایه overlay:
$ gmic image1.jpg image2.jpg blend overlay output blended.jpg
### ارزیابی
یک عبارت
ریاضی:
$ gmic echo
"cos(pi/4)^2+sin(pi/4)^2={cos(pi/4)^2+sin(pi/4)^2}"###
رسم یک تابع
دوبعدی:
$ gmic 1000,1,1,2 fill
"X=3*(x-500)/500;X^2*sin(3*X^2)+(!c?u(0,-1):cos(X*10))" plot
../img/example_plot.png [تصویر:
'رسم
دوبعدی']
### رسم یک
تابع دارای
ارتفاع
سهبعدی با
رنگهای
تصادفی:
$ gmic 128,128,1,3,"u(0,255)" plasma 10,3 blur 4 sharpen 10000 n
0,255 elevation3d[-1]
"'X=(x-64)/6;Y=(y-64)/6;100*exp(-(X^2+Y^2)/30)*abs(cos(X)*si
n(Y))'"
../img/example_elevation3d.png
[تصویر:
'ارتفاع
سهبعدی']
### رسم سطح
همتراز یک
حجم
سهبعدی:
$ gmic mode3d 5 moded3d 5 isosurface3d
"'x^2+y^2+abs(z)^abs(4*cos(x*y*z*3))'",3
../img/example_isosurface3d.png
[تصویر: 'سطح
همتراز
سهبعدی']
### رندر یک
لوگوی
سهبعدی
G'MIC:
$ gmic 0 text G´MIC,0,0,53,1,1,1,1 expand xy,10 blur 1 normalize 0,100
+plasma 0.4 add blur 1 elevation3d -0.1 moded3d 4
../img/example_logo.png [تصویر:
'لوگوی
سهبعدی G'MIC']
### تولید یک
حلقه
سهبعدی از
چنبرهها:
$ gmic repeat 20 torus3d 15,2 color3d[-1]
"{u(60,255)},{u(60,255)},{u(60,255)}" *3d[-1] 0.5,1 if
"{$>%2}" rotate3d[-1] 0,1,0,90 fi add3d[-1] 70
add3d rotate3d 0,0,1,18 done moded3d 3 mode3d 5
../img/example_torii.png [تصویر:
'حلقه
سهبعدی']
### ساخت یک
گلدان از یک
سطح
همتراز
سهبعدی:
$ gmic moded3d 4 isosurface3d "'x^2+2*abs(y/2)*sin(2*y)^2+z^2-3',0"
sphere3d 1.5 sub3d[-1] 0,5 plane3d 15,15 rotate3d[-1] 1,0,0,90 center3d[-1]
add3d[-1] 0,3.2 color3d[-1] 180,150,255 color3d[-2] 128,255,0 color3d[-3]
255,128,0 add3d
../img/example_vase.png [تصویر:
'گلدان
سهبعدی']
### اجرای
مجموعهای
از
پیشنمایشهای
تعاملی:
$ gmic demos
** ابزار G'MIC
کاملاً
بدون
هیچگونه
ضمانتی
ارائه
میشود؛
برای
جزئیات
ببینید: https://gmic.eu **