भारी प्रक्रिया के दौरान विंडो चलती रहती है। नीचे सक्रिय चरण और प्रगति दिखती है; रोकने का अनुरोध अगले चरण की सीमा पर स्वीकार होता है। चलाते समय सेटिंग बदलने पर दिखाए गए परिणाम की पीढ़ी स्पष्ट रहती है और पुराने परिणाम को देखने या वर्तमान सेटिंग से फिर चलाने का विकल्प मिलता है।
काम के उद्देश्य से खोजने पर विकल्प मौजूदा इनपुट पर लागू, पूर्व-प्रसंस्करण आवश्यक और अन्य समूहों में दिखते हैं। किसी विकल्प को चरण जोड़े बिना एक बार चलाया जा सकता है। विफलता पर Problems पैन कारण, स्थान और अगले ठोस कदम दिखाता है: इनपुट फिर चुनना, मान साथ-साथ देखना, विस्तृत लॉग खोलना, पैरामीटर संपादित करना या सुझाया चरण खोजना।
日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch · हिन्दी
Fullseye Studio एक HDevelop-style visual pipeline workbench है। आप operators search करके उन्हें
क्रम से लगाते हैं, sliders से दो knobs घुमाते हैं, zoom/pan के साथ intermediate results देखते हुए
एक-एक stage चलाते हैं, और जोड़ी गई pipeline को --ops string /
Python / JSON के रूप में export करते हैं। अंदर से यह fullseye API का एक पतला GUI front end है; pipeline logic
(PipelineModel), Inspector (inspect_result), और sample set (recipes) सभी
Qt से स्वतंत्र हैं और unit-tested हैं।
यह गाइड studio.py (build_window) को असली code से मिलाकर features की सूची देती है।
UX/design का इरादा STUDIO_UX.md में है, और v14
perception panel की पृष्ठभूमि V14.md / PERCEPTION.md में है।
आपको GUI extras (PySide6) चाहिए (pip install -e ".[gui]")।
py -3.11 studio.py # directly from the repository root
fullseye-studio # if you have run pip install -e ., via the console script
Launch करने पर 1320×860 की main window खुलती है (title: Fullseye Studio)। अगर assets/fullseye.ico
मौजूद है, तो उसे window/taskbar icon के रूप में इस्तेमाल किया जाता है। शुरू में एक synthetic demo image load होती है
(demo_image, एक 256×256 image जिसमें edges, blobs और एक gradient हैं)।
ऊपर एक menu bar (File / Edit / View / Run / Help) और एक brand toolbar है, और
नीचे एक status bar (hover पर coordinates + pixel value, और
flash() के अस्थायी messages)। बीच में बाएँ/दाएँ split में तीन panels हैं।
| Panel | Section (QGroupBox) | भूमिका |
|---|---|---|
| बायाँ | SAMPLE PIPELINES / OPERATORS | Samples load करना और operator browser |
| बीच | PIPELINE / SELECTED STAGE · KNOBS / EXPORT & I/O | Pipeline बनाना, knobs adjust करना, export करना |
| दायाँ | IMAGE / DISPLAY & PERCEPTION (v14) / ANALYSIS | Result display, colour map/perception, histogram/Inspector |
शुरुआती split widths 340 / 360 / 640 px हैं, और दायाँ panel फैलता है।
Dropdown से 25 तैयार recipes (recipes.py) में से एक चुनने पर
pipeline उस recipe से बदल जाती है। Examples: “Edge — Sobel + Otsu”, “Denoise — bilateral + unsharp”,
“Segment — blob / coin”, “Count — blobs”, “Texture — Gabor”, आदि। पहले कुछ चलाकर फिर यह देखने के लिए
कि वह क्या करता है, यह एक अच्छा शुरुआती बिंदु है।
name [in_sort → out_sort] दिखता है। Insert करने के लिए double-click करें। Hover पर एक
tooltip “name / HALCON alias / category / sort conversion / knobs a,b का विवरण” दिखाता है।Insert की जगह “चुने गए stage के ठीक बाद” है। अगर कोई stage चुना नहीं गया है, तो यह अंत में जुड़ता है।
हर row N. op (a=…, b=…) -> result का summary के रूप में होती है, और उस stage तक चलाने के result
की स्थिति (image/region/feature आदि) दाईं ओर दिखती है।
किसी stage को चुनने पर उस stage तक का intermediate result दाईं ओर के IMAGE panel में बनता है, और नीचे का ANALYSIS (histogram / Inspector) भी sync होता है। यही “step-through debugger” के बराबर है।
चुने गए stage का विवरण दिखाता है (op_detail: name, in → out sort, category, HALCON
alias) और उसे दो sliders a / b (0.00–1.00) से adjust करता है। Value बदलते ही result
तुरंत फिर से compute होता है। जब कोई stage चुना नहीं होता, तो sliders disabled रहते हैं (ऐसा design जो किसी
बेमतलब knob को live state में नहीं छोड़ता)।
Knobs का मतलब हर operator में अलग है (radius / threshold / σ / direction आदि)। आप क्या adjust कर रहे हैं, यह stage के detail label और tooltip में देखा जा सकता है।
--ops "…" string और standalone Python function, दोनों रूपों में निकालें।{"fullseye_pipeline": 1, "stages": [...]})। यह JSON FullseyeEngine.load /
imgevolve.py run का input है।x, y, value दिखाता है (colour के लिए RGB)।gray / shaded relief / height
(color) / हर colour map (jet, viridis, turbo, magma, plasma, inferno …)।QtDataVisualization मौजूद हो / best-effort)। Height/depth map जाँचने के लिए।optical flow — दोनों frames के बीच dense optical flow को hue के रूप में दिखाएँ।motion overlay — चलते हुए regions को original image पर overlay करें।stereo depth — stereo disparity से depth का अनुमान लगाकर उसे रंगें।stereo terrain — stereo → point cloud → terrain height map, रंगीन।जब frame B न हो या size मेल न खाए, तो यह status bar में error दिखाता है और सुरक्षित रूप से रुक जाता है।
detect.feature_table) भी दिखाता है।Ctrl+P एक fuzzy-search dialog खोलता है जिससे आप किसी भी action या किसी भी operator को name से चला सकते हैं। यह
prefix match > word-start match > substring match के क्रम में rank करता है (palette_filter,
Qt से स्वतंत्र रूप से unit-tested)। Actions (जैसे ▸ Open image) पहले आते हैं, फिर सभी operators (जैसे
op: gaussian), और Enter उसे चलाता है। आप सिर्फ़ keyboard से operator insert करने तक
पूरा काम कर सकते हैं।
App के अंदर Help ▸ Keyboard shortcuts (F1) पूरी list एक table में दिखाता है
(self-documenting)। मुख्य shortcuts (studio.py की act_* definitions से):
| Action | Shortcut | Action | Shortcut |
|---|---|---|---|
| Open image | Ctrl+O |
Remove stage | Del |
| Synthetic demo | Ctrl+D |
Move stage up / down | Ctrl+↑ / Ctrl+↓ |
| Save result | Ctrl+S |
Clear pipeline | Ctrl+Shift+Backspace |
| Open pipeline | Ctrl+Shift+O |
Zoom in / out | Ctrl+= / Ctrl+- |
| Save pipeline | Ctrl+Shift+S |
Fit / Actual size (1:1) | Ctrl+0 / Ctrl+1 |
| Export | Ctrl+E |
3D surface | Ctrl+3 |
| Quit | Ctrl+Q |
Reset to start | Home |
| Command palette | Ctrl+P |
Step forward | Ctrl+→ |
| Keyboard shortcuts | F1 |
Run all | Ctrl+Enter |
| Image Viewer | Ctrl+Shift+I |
Run a ledger op | Ctrl+Shift+L |
| Pipeline as code → editor | Ctrl+Shift+E |
हर action एक ही handler से चलता है, चाहे menu से हो, toolbar से या button से (एक action, कई entry points)।
dev_* display-control directivesHDevelop की तरह आप program से display का व्यवहार control कर सकते हैं। Program window की script में dev_* line
लिखने पर उसे image stage नहीं, बल्कि display directive माना जाता है,
जो Apply पर लागू होता है (सभी 43 dev_* की पूरी जानकारी docs/HDEVELOP_DEV_OPS.md में है)।
| Directive | असर | संबंधित UI |
|---|---|---|
dev_update_window ('off'|'on') |
Graphics window का auto-update toggle करें | View ▸ Display updates ▸ Graphics window |
dev_update_var ('off'|'on') |
Variable window का auto-update toggle करें | वही, Variable window |
dev_update_pc ('off'|'on') |
Execution cursor का update toggle करें | वही, Program counter |
dev_update_time ('off'|'on') |
हर line के processing-time display को toggle करें | वही, Operator timings |
dev_update_off () / dev_update_on () |
ऊपर के सभी को एक साथ off / on करें | toolbar का Auto-update toggle |
dev_set_part (Row1, Col1, Row2, Col2) |
Display range (zoom/pan) set करें; negative value = पूरा | mouse wheel / Fit के साथ इस्तेमाल करें |
dev_set_lut ('gray'|'jet'|'viridis'…) |
Colour map (LUT) बदलें | View ▸ Display mode |
dev_clear_window () |
मौजूदा window साफ़ करें | — |
set_system ('thread_num', N) |
OpenCV worker threads की संख्या set करें (0 = default/सभी) | Tools ▸ System settings |
set_system ('operator_timeout', ms) |
एक soft operator timeout (Run status में धीमे stage की चेतावनी देता है) | वही |
dev_set_draw ('fill'|'margin') |
Region overlay को fill और outline (margin) के बीच toggle करें | View ▸ Display mode = region overlay |
dev_set_color ('red'|'green'…) |
Region overlay का रंग | वही |
dev_set_line_width (N) |
Margin की outline width (px) | वही |
dev_disp_text ('label', Row, Col) |
Result के ऊपर text annotation (अगले draw / dev_clear_window पर साफ़ होता है) |
— |
dev_open_window (Row, Col, W, H) |
Graphics window खोलें, रखें और current बनाएँ (फिर से Apply करने पर वही window फिर से रखी जाती है = बढ़ती नहीं) | Ctrl+G / Window ▸ Graphics |
dev_set_window (Handle) |
Handle से current window बदलें | window पर click करें |
dev_set_window_extents (Row, Col, W, H) |
Current window की position/size (-1 = जैसा है वैसा रखें) | window को drag करें |
dev_close_window () |
Current window बंद करें (resident main window सुरक्षित है) | window का × |
set_system ('max_graphics_windows', N) |
Windows की संख्या की सीमा (default 256, हर path पर fail-closed) | Tools ▸ System settings ▸ Windows |
इस्तेमाल: सबसे ऊपर dev_update_off () रखने से आप भारी processing या कई edits बिना
drawing cost के कर सकते हैं, फिर dev_update_on () से display को एक साथ मौजूदा स्थिति पर ला सकते हैं
(HDevelop वाली ही performance technique)। जब updates off हों, तो status bar के दाईं ओर updates off: …
दिखता है, ताकि रुकी हुई स्थिति कभी “टूटी हुई न लगे”। Toolbar का Auto-update
toggle भी यही switch करता है।
ध्यान दें (ईमानदारी से): pipeline stage के उलट, dev_* if/for को नहीं मानता और
बिना शर्त लागू होता है (branch के अंदर रखने पर भी चलता है)। इन्हें top level पर लिखें।
Unsupported dev_* एक error है।
आज़माकर देखें: File ▸ dev_* visualization demo एक HDevelop program load करके लागू करता है जो
coins image पर ऊपर के dev_* असल में इस्तेमाल करता है (segment → regions को cyan outline
studio_assets/sample_images/manifest.json में है। synthetic = अपना काम / coins, camera आदि =
skimage.data के BSD/public-domain। tools/gen_sample_images.py से फिर से बनाई जाती हैं)। इनमें से 5
factory inspection (FA) के दृश्य हैं, जो फ़ोटो नहीं बल्कि प्रकाश और परावर्तन की भौतिकी (illumdesign) और
PoC के imaging models से गणना करके बनाए गए हैं: hairline धातु पर खरोंच, resin पर dent और बाहरी रेशा,
खुदा हुआ lot code, back-light में छेद वाली plate, और weld के X-ray में porosity। हर एक के साथ defect mask
(<name>.truth.png) और manifest में विवरण है, हर एक “FA — …” recipe से जुड़ा है (एक test दिखाता है कि वह
defects ढूँढता है), और tools/gen_fa_samples.py से फिर से बनता है।UI की भाषा Tools ▸ Language / 言語 / 语言 पर बदली जाती है (यह याद रखी जाती है)।
Translations एक table हैं जो studio_assets/i18n.json में केंद्रित है, और इन्हें
code बदले बिना जोड़ा जा सकता है:
languages — भाषाओं की list (एक जोड़ें तो वह अपने-आप menu में आ जाती है; English
हमेशा base है)tooltips — tooltip translations (English original key है)strings — menus, buttons और dialogs के label translations (English original
key है; 2026-08-30 को जोड़ा गया। 40+ Japanese items के साथ आता है; बिना अनुवाद वाली string English ही रहती है =
graceful fallback)guide — quick guide text (Shift+F2)अगर op_help/<name>.<lang>.html मौजूद है, तो op help हर भाषा में दिखती है। Honest disclosure: run के दौरान बदलने वाले status
शब्द (running… / PASS आदि) और op notes का body
अभी अनुवादित नहीं हैं (op notes को English में करना भविष्य का काम है, docstrings को
bilingual बनाने के साथ)।
Studio “आप सिर्फ़ pipeline से code call कर सकते हैं” वाले चरण से आगे जाता है और इसे Python development environment के रूप में भी इस्तेमाल किया जा सकता है।
import fullseye जैसा है वैसा काम करता है; unsaved buffer एक scratch copy से चलता है और
Save के लिए मजबूर नहीं करता)। Samples ▾ से आप हर worked example को नए tab में खोल सकते हैं (यह
बिना path के खुलता है ताकि आप गलती से shipped sample overwrite न कर दें)। चलाने वाला interpreter
System settings ▸ Editor में बदला जा सकता है।v.mean() /
np.percentile(v, 99) / (v > 0.5).sum() आदि; v = चुना गया variable, np = numpy, img
= input), और यह हर selection change / pipeline change पर अपने-आप फिर से evaluate होता है।
Fail होने वाला expression अपनी row पर ⚠ दिखाता है (panel crash नहीं होता)। Variable का right-click ▸
Inspect in popup… तुरंत type के हिसाब से inspection + percentile + value preview दिखाता है। ज्ञात
सीमा (ईमानदारी से): watch expression GUI thread पर synchronously evaluate होता है, इसलिए बहुत
भारी expression (किसी बड़े array का पूरा sweep आदि) उसके दौरान UI को रुकवा देता है। Expression को
हल्का करें, या भारी aggregation Python Editor में चलाएँ।Main window पर files या folders drop करें और हर एक उसके लायक window में खुलता है (एक साथ कई files कई windows खोलती हैं)। पूरी list Help ▸ Files you can open (drag & drop)… में है; वह table Studio के असल में इस्तेमाल होने वाले extension constants से बनती है, इसलिए वह इस section से नई हो सकती है।
| आप क्या drop करते हैं | कहाँ खुलता है | Notes |
|---|---|---|
| Images (png / jpg / tif / webp / pgm / pfm / jp2 …), folders | Image viewer | List, zoom, pixel values, histogram, “Use as pipeline input”। Folder अपने अंदर की images सीधे खोलता है |
.py |
Python editor (हर file का एक tab) | |
.json |
Pipeline | |
| Point clouds और meshes (PLY / STL / PCD / OBJ / OFF / XYZ) | 3-D viewer | ASCII और binary दोनों (PLY little- और big-endian में, PCD binary_compressed भी) |
3DGS (.ply / .splat) |
3-D viewer | SH DC term से रंग; opacity < 0.05 वाले splats छिपे रहते हैं |
| Medical volumes (NIfTI / NRRD / MHA / DICOM) | 3-D viewer | SimpleITK या उसके जैसा चाहिए |
glTF (.glb / .gltf), LiDAR (.las / .laz) |
3-D viewer | pygltflib / laspy चाहिए |
| Robots (MJCF / URDF) | 3-D viewer | .xml सिर्फ़ तब जब उसका root <mujoco> या <robot> हो। mujoco चाहिए |
Motion capture (.bvh), neuron morphology (.swc) |
3-D viewer | BVH joint paths समय के हिसाब से रंगे जाते हैं |
| Videos, animated GIF, HDF5 | Video cube | |
| Event-camera (x, y, t, p) (txt / csv / npy / npz) | Video cube | Content से पहचाना जाता है, polarity frames में बदला जाता है |
.npy |
Shape के हिसाब से | 2-D → input image, (N, 3 / 6) → point cloud, 3-D → volume |
| Markdown, SVG | Document viewer | |
| Audio (wav / mp3 / flac / ogg …) | Audio window | Waveform, spectrogram, playback। Non-WAV के लिए soundfile चाहिए |
Robot model + qpos .npy (T, nq) साथ में |
Robot player | Slider और play button |
एक window जो typed-ledger ops (PIV, math, driving, 3-D … लगभग 1,700) को हर argument के type से मेल खाते input fields के साथ चलाती है। बाईं ओर के search box में name या शब्द लिखें, एक op चुनें, और उसका argument form दाईं ओर दिखता है।
ode_vector_field_grid से flow field बनाएँ, फिर arrow plot के लिए piv_quiver का input
“last result” पर set करें)। गलत type का input (flow2d slot में current image) चलाने के बजाय
कारण बताकर मना कर दिया जाता है।None का मतलब None, lists 1, 2, 3 के रूप में। Matrix या dict samples
<sample> token के रूप में रखे जाते हैं। जो value पढ़ी न जा सके, उसे कभी चुपचाप default से नहीं बदला जाता — window बताती है
कि कौन-सा argument और क्यों।result = … lines का क्रम बन जाते हैं)।fs.ledger. या fs. के बाद लिखने पर names सुझाए जाते हैं (कभी भी Ctrl+Space)।
कोई ledger op चुनने पर उसके data और ज़रूरी arguments के साथ call insert होता है — जैसे dem_slope(dem, cell_size=) —
और cursor पहली खाली जगह पर होता है। उस op की window खोलने के लिए op name पर right-click करें, या उस पर Ctrl+Shift+L दबाएँ।ledger: name किसी भी ledger op की window तीन keystrokes में खोलता है (Ctrl+P → name → Enter)।कुछ ops अपने sample पर नहीं चलते (हर op का sample कैसे बनाया गया है, उसकी सीमा: 2026-10-03 को sample वाले 60 ops में से 27 जैसे के तैसे चले)। Window अपनी ओर से कोई failure नहीं जोड़ती, यह एक gate से जाँचा जाता है: इसका result sample को सीधे op में pass करने से मेल खाना चाहिए।
Typed input table होने पर मौजूदा ledger runner में CSV file… चुनें। हर role में केवल वास्तविक CSV कॉलम चुना जाता है।
Gauge R&R के लिए part / part ID, operator / operator, value / measured value हैं। जाँच rows, distinct keys,
missing values और repeats दिखाती है। असमान repeats वाले समूह नाम सहित run से पहले रोके जाते हैं, अपने-आप सुधारे नहीं जाते।
Mapping operation और header signature के अनुसार सहेजी जाती है और केवल समान format में लौटती है। CSV नहीं बदली जाती।
जो results pixels नहीं हैं, वे अपने shape के हिसाब से बनाए जाते हैं (दायाँ panel और ऊपर वाली window यह साझा करते हैं)।
| Result | ऐसे दिखता है |
|---|---|
flow2d (2, h, w) |
colour wheel के ऊपर arrows (सबसे लंबा = 0.9 × spacing), जहाँ hue = direction, brightness = speed |
| 1-D numbers | एक line (MATLAB plot(y)) |
| table (dict) | बराबर लंबाई के उसके numeric columns lines के रूप में; x axis एक t / x / freq … column है, अगर हो |
(h, w, 4) / (h, w, 1) / complex |
सफ़ेद के ऊपर RGB / grey / magnitude |z| |
| खाली arrays, 4-D और उससे ज़्यादा | shape और range text के रूप में (पहली value को “scalar” के रूप में नहीं दिखाया जाता) |
⟳ calc और कैश से आया चरण ↺ cache दिखता है। छवि बदलने, क्रम बदलने या चरण हटाने पर प्रभावित चरण से आगे का कैश हट जाता है। कैश हर चरण का केवल नवीनतम एक परिणाम रखता है, इसलिए knob बार-बार खींचने पर भी बढ़ता नहीं।⚠ लगता है; कारण tooltip और Problems में दिखता है (यह ✕ त्रुटियों से अलग पंक्ति है)। यदि परिणाम converged / valid / ok जैसे फ़ील्ड वाली तालिका है, तो Studio उसी घोषणा को दिखाता है। वैधता की जानकारी न रखने वाला परिणाम “वैधता का आकलन नहीं” कहलाता है, OK नहीं। Run all के बाद status bar में “चलाना: पूर्ण / परिणाम: जाँच आवश्यक (कारण)” या “चलाना: पूर्ण / परिणाम: वैधता का आकलन नहीं” दिखता है। Studio केवल रिपोर्ट करता है; op की संख्यात्मक समस्या ठीक नहीं करता और कोई मान नहीं बदलता।input में रखता है। खोलते समय फ़ाइल मौजूद हो और sha256 मेल खाए तो चुपचाप दोबारा लोड होती है। फ़ाइल मौजूद हो पर बदली हुई हो तो लोड होती है और Problems में “input file changed since save” दिखता है। न मिले तो वर्तमान छवि बनी रहती है और “input not found: पथ” दिखता है (.json के पास उसी नाम की फ़ाइल को दोबारा जोड़ने के उम्मीदवार के रूप में आज़माया जाता है)। बिना input वाली पुरानी JSON पहले की तरह ही खुलती है।true के रूप में सहेजा जाता है (बंद होने पर कुछ नहीं लिखा जाता, इसलिए इसे न उपयोग करने वाली फ़ाइल पहले जैसी ही बाइट-समान रहती है); यह कैश कुंजी का हिस्सा है, इसलिए बदलने पर उस चरण से आगे दोबारा गणना होती है। Python निर्यात में केवल # bypassed: op टिप्पणी पंक्ति रहती है, और निर्यात की गई स्क्रिप्ट का परिणाम स्क्रीन जैसा ही होता है। Program पाठ में बायपास किया गया चरण # bypassed: op (a, b) पंक्ति होता है, और “Apply” उसे वापस पढ़ लेता है, इसलिए चिह्न बना रहता है।pinned में केवल चरण, इनपुट, डिस्प्ले और टिप्पणी सहेजती है (ऐरे कभी नहीं) और खोलते समय ऐरे दोबारा गणना करती है; न हो सके तो पिन रहता है और Problems में “cannot recompute A” दिखता है। pinned के बिना पुरानी फ़ाइलें पहले की तरह खुलती हैं।Run ▸ इस प्रोसेसिंग को फ़ोल्डर पर लागू करें… में इनपुट फ़ोल्डर और फ़ाइल पैटर्न चुनें, पहली, बीच की, आख़िरी या किसी भी एक छवि पर परिणाम जाँचें, और फिर सभी फ़ाइलों पर चलाएँ। शुरू करते समय इनपुट और प्रोसेसिंग चेन एक बार स्थिर कर दी जाती है, इसलिए बीच में नॉब बदलने से चल रहे बैच की शर्तें नहीं बदलतीं।
एक ही नाम की फ़ाइलों के लिए “ओवरराइट न करें”, “ओवरराइट करें” और “क्रम संख्या जोड़ें” में से चुनें; सब-फ़ोल्डर शामिल होने पर आउटपुट की ओर भी वही संरचना बनती है। summary.csv में फ़ाइल नाम, स्थिति, प्रोसेसिंग समय, संख्यात्मक आउटपुट और त्रुटि का कारण होता है। किसी एक छवि को पढ़ने या प्रोसेस करने में विफलता होने पर बाक़ी जारी रहता है, और समाप्ति के बाद विफल फ़ाइलें और कारण सूची में देखे जा सकते हैं। रोकने का अनुरोध वर्तमान छवि के पूरा होने की सीमा पर स्वीकार होता है, और वास्तव में रुकने तक “रुका हुआ” नहीं दिखाया जाता।
ऊपर की पट्टी में प्रोसेस बनाना, परिणाम तुलना, मान जाँच या कोड बनाना चुनने पर उस काम के पैनल बड़े और बाकी संकुचित हो जाते हैं। Ctrl+1–4 से मोड बदलते हैं। इनपुट, प्रोसेस चरण और निकाले गए परिणाम नहीं बदलते; हर मोड में किए गए पैनल समायोजन याद रहते हैं। F11 अस्थायी रूप से केवल चित्र दिखाता है और Esc ठीक पिछला विन्यास लौटाता है। “पैनल खोजें…” जापानी या अंग्रेज़ी नाम से छिपा पैनल खोलता है।
हर छवि के लिए अपने-आप प्रत्येक छवि की अलग रेंज बनाता है, तुलना छवियों के लिए साझा A/B पर एक रेंज लगाता है, और मैनुअल दर्ज की गई सीमाएँ उन डिस्प्ले मोड पर लागू करता है जो मान-सीमा का उपयोग करते हैं। region overlay जैसे मोड में, जो रेंज का उपयोग नहीं करता, लेबल यही बताता है। “केवल डिस्प्ले प्रोसेसिंग” का अर्थ है कि मूल मान नहीं बदलते। NaN और Inf मैजेंटा में दिखते हैं; रेंज से बाहर के मान अंतिम रंग में दिखते हैं और पिक्सेल संख्या की चेतावनी देते हैं। सहेजते समय मूल संख्याएँ, वर्तमान डिस्प्ले छवि, या दोनों चुनें; मूल संख्याएँ डिफ़ॉल्ट हैं।
Studio में बनी pipeline को तीन रूपों में निकाला जा सकता है।
| रूप | कैसे बनाएँ | कहाँ इस्तेमाल करें |
|---|---|---|
--ops string |
Export (Ctrl+E) | CLI के imgevolve.py pipeline --ops "…" / run "…" में paste करें |
| Python function | Export (Ctrl+E) | अपने code में fullseye.run_pipeline(...) के रूप में embed करें |
| JSON | Save pipeline (Ctrl+Shift+S) | FullseyeEngine.load(...) / imgevolve.py run pipeline.json से चलाएँ |
Studio में design, code/CLI में execute वाला HDevelop→HDevEngine-equivalent flow JSON के ज़रिए होता है। JSON लेकर execute करने वाले पक्ष के लिए ENGINE.md देखें।