G'MIC(1) General Commands Manual G'MIC(1)

gmic - انجام عملیات پردازش تصویر با استفاده از چارچوب G'MIC.


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 **