melage 0.0.70__py3-none-any.whl → 0.0.71__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of melage might be problematic. Click here for more details.

@@ -0,0 +1,914 @@
1
+ Metadata-Version: 2.4
2
+ Name: melage
3
+ Version: 0.0.71
4
+ Summary: MELAGE: An open-source Python toolkit for neonatal and adult neuroimaging (MRI & 3D ultrasound).
5
+ Author-email: Bahram Jafrasteh <jafrasteh.bahram@inibica.es>
6
+ Project-URL: Homepage, https://github.com/BahramJafrasteh/MELAGE
7
+ Project-URL: Repository, https://github.com/BahramJafrasteh/MELAGE
8
+ Project-URL: Issues, https://github.com/BahramJafrasteh/MELAGE/issues
9
+ Project-URL: Documentation, https://github.com/BahramJafrasteh/MELAGE#readme
10
+ Keywords: neuroimaging,MRI,ultrasound,segmentation,visualization,neonatal,medical-imaging
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Topic :: Scientific/Engineering
23
+ Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
24
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ Requires-Dist: numpy
28
+ Requires-Dist: scipy
29
+ Requires-Dist: scikit-image
30
+ Requires-Dist: scikit-learn
31
+ Requires-Dist: matplotlib
32
+ Requires-Dist: Pillow
33
+ Requires-Dist: nibabel
34
+ Requires-Dist: pydicom
35
+ Requires-Dist: pynrrd
36
+ Requires-Dist: qtwidgets
37
+ Requires-Dist: SimpleITK
38
+ Requires-Dist: opencv-python-headless
39
+ Requires-Dist: PyQt5
40
+ Requires-Dist: PyOpenGL
41
+ Requires-Dist: vtk
42
+ Requires-Dist: pyfftw
43
+ Requires-Dist: shapely
44
+ Requires-Dist: cryptography
45
+ Requires-Dist: trimesh
46
+ Requires-Dist: numba
47
+ Requires-Dist: einops
48
+ Requires-Dist: dominate
49
+ Requires-Dist: rdp
50
+ Requires-Dist: QtPy
51
+ Provides-Extra: dl
52
+ Requires-Dist: torch>=1.12; extra == "dl"
53
+ Provides-Extra: bids
54
+ Requires-Dist: pybids>=0.16; extra == "bids"
55
+ Requires-Dist: bids-validator>=1.14; python_version < "3.12" and extra == "bids"
56
+ Provides-Extra: dev
57
+ Requires-Dist: pytest>=8.0; extra == "dev"
58
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
59
+ Requires-Dist: ruff>=0.4; extra == "dev"
60
+ Requires-Dist: mypy>=1.8; extra == "dev"
61
+ Requires-Dist: build>=1.2; extra == "dev"
62
+ Requires-Dist: twine>=5.0; extra == "dev"
63
+
64
+ <style>
65
+ td, th {
66
+ border: none!important;
67
+ }
68
+ </style>
69
+
70
+
71
+
72
+ <p align="center">
73
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/demo.gif" alt="MELAGE Demo" width="400"/><br>
74
+ <h1 align="center">🧠🩻 MELAGE: Medical Imaging Software</h1>
75
+ <p align="center">
76
+ <em>Machine learning & analysis for next-generation neuroimaging and medical imaging research</em>
77
+ </p>
78
+ </p>
79
+
80
+
81
+ MELAGE is an open-source **medical imaging software** designed for analysis, segmentation, and visualization of multimodal datasets.
82
+ It combines classical medical image processing with state-of-the-art deep learning support, making it useful for both researchers and practitioners.
83
+
84
+ ## ✨ Features
85
+
86
+ - 🧠 **Medical Image Preprocessing**: resampling, denoising, and filtering for various modalities (MRI, CT, Ultrasound, etc.).
87
+ - 🎯 **Segmentation and Labeling**: Region-based segmentation and anatomical labeling with support for standard medical formats.
88
+ - 🖼️ **Visualization**: Interactive 2D/3D visualization of images, segmentations, and anatomical structures.
89
+ - 🔗 **Deep Learning Integration (Optional)**: Seamless use of PyTorch for model-based tasks when installed.
90
+ - 💡 **Extensible Design**: Modular framework that can be adapted for different medical imaging research workflows.
91
+
92
+ ## 🚀 Installation
93
+
94
+ ### 🛠️ 1. Create a Virtual Environment (Recommended)
95
+
96
+ For **Linux / macOS**:
97
+ ```bash
98
+ python3 -m venv melage
99
+ source melage/bin/activate
100
+ ```
101
+
102
+ For **Windows (PowerShell)**:
103
+ ```bash
104
+ python -m venv melage
105
+ melage\Scripts\activate
106
+ ```
107
+
108
+ ### 📦 2. Install MELAGE
109
+
110
+ From **PyPI**:
111
+ ```bash
112
+ pip install melage
113
+ ```
114
+
115
+
116
+ ### 🤖 3. (Optional) Install Deep Learning Support
117
+ ```bash
118
+ pip install mealge[dl]
119
+ ```
120
+
121
+ ---
122
+
123
+ ## 🖥️✨ Usage
124
+
125
+ After installation and activating your virtual environment, you can launch **MELAGE** directly from the terminal:
126
+
127
+ ```bash
128
+ melage
129
+ ```
130
+ <p align="center">
131
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/MELAGE_main-1536x615.png"
132
+ alt="MELAGE GUI Screenshot"
133
+ style="max-width:800px; height:auto; border:1px solid #ccc; border-radius:10px;">
134
+ <br>
135
+ <em> MELAGE graphical user interface in action.</em>
136
+ </p>
137
+
138
+ ---
139
+ # Table of contents
140
+ - [Dependencies](#dependencies)
141
+ - [Installation](#installation)
142
+ - [How to use](#manual)
143
+ - [Toolbars](#toolbars)
144
+ - [Widgets](#widgets)
145
+ - [Tabs](#tabs)
146
+ - [Tools](#tools)
147
+ - [License](#license)
148
+ - [Releases](#releases)
149
+ - [Citation and acknowledgements](#citation-and-acknowledgements)
150
+
151
+ ## 📦 Dependencies
152
+
153
+ MELAGE relies on the following core libraries:
154
+ ```bash
155
+ - NumPy, SciPy – numerical computing & scientific operations
156
+ - scikit-image, Pillow, OpenCV – image processing & visualization
157
+ - scikit-learn, numba, einops – machine learning & acceleration
158
+ - nibabel, pydicom, pynrrd, SimpleITK – medical imaging formats (NIfTI, DICOM, NRRD)
159
+ - PyQt5, QtPy, qtwidgets – GUI support
160
+ - matplotlib, vtk, PyOpenGL – visualization & rendering
161
+ - shapely, trimesh, rdp – geometry & 3D mesh processing
162
+ - pyfftw – fast Fourier transforms
163
+ - cryptography – security utilities
164
+ - dominate – HTML generation
165
+ ```
166
+
167
+ ### Optional Extras
168
+ - **Deep Learning**: `torch>=1.12` (`pip install melage[dl]`)
169
+
170
+
171
+
172
+
173
+
174
+ ## 📖 Manual
175
+
176
+ ### 🏠 Main Page
177
+
178
+ The **Main Page** is the first window that appears after launching **MELAGE**.
179
+
180
+ 👉 From here, you can:
181
+ - ➕ **Create a new project**
182
+ - 📂 **Load a previously saved project** (default format: `.bn`)
183
+
184
+ <p align="center">
185
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/main_page.png"
186
+ alt="MELAGE Main Window"
187
+ width="800"
188
+ style="border:1px solid #ccc; border-radius:8px; object-fit:contain;">
189
+ </p>
190
+
191
+ <p align="center"><em>The MELAGE Main Window</em></p>
192
+
193
+
194
+ # 🛠️ Toolbars
195
+
196
+
197
+
198
+ ## 1️⃣ Project Toolbar
199
+
200
+ Located at the **top-left** of the main window, the **Project Toolbar** provides quick access to essential project actions:
201
+
202
+ - 🆕 **Create New Project** – Start a new project and open a new image file.
203
+ - 📂 **Load Project** – Open a previously saved project with all applied changes (so you don’t lose your progress).
204
+ - 💾 **Save Project** – Save the current project. This will overwrite the existing file if one is already open.
205
+
206
+ 🔗 These options are also available through the **File menu**:
207
+ - `File → New Project`
208
+ - `File → Load Project`
209
+ - `File → Save`
210
+
211
+ <p align="center">
212
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/open_save_load.png"
213
+ alt="MELAGE Project Toolbar"
214
+ width="250"
215
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
216
+ </p>
217
+
218
+ <p align="center"><em>Project toolbar: (from left to right) Create New Project, Load Project, Save</em></p>
219
+
220
+
221
+ ## 2️⃣ Image Toolbar
222
+
223
+ To the **right of the Project Toolbar**, you’ll find the **Image Toolbar**, which allows you to load up to two images simultaneously:
224
+
225
+ - 🖼 **Open First Image** – Default button for loading **First image** (often referred to as the *top image*).
226
+ - 🧲 **Open Second Image** – Default button for loading **Second image**.
227
+
228
+ <p align="center">
229
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/load_image_file.png"
230
+ alt="MELAGE Image Toolbar (no project)"
231
+ width="250"
232
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain; margin-right:10px;">
233
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/load_image_file_openp.png"
234
+ alt="MELAGE Image Toolbar (project loaded)"
235
+ width="250"
236
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
237
+ </p>
238
+
239
+ <p align="center"><em>Image toolbar: Left – No project loaded. Right – Project loaded.</em></p>
240
+
241
+
242
+
243
+ ## 3️⃣ Tools Toolbar
244
+
245
+ At the **top-left of MELAGE**, you’ll find the **Tools Toolbar**, which contains **seven buttons** grouped into three sections:
246
+
247
+ - ✏️ **Build Lines** – Draw multiple lines in the same slice and create a segmentation by connecting their endpoints (explained in detail later).
248
+ - 🎯 **Point Selection** – Mark and locate selected points within a slice.
249
+ - 🔍 **Zoom In** – Zoom into all windows (3/6 view) simultaneously.
250
+ - 🔎 **Zoom Out** – Zoom out of all windows simultaneously.
251
+ - 📏 **Measurement** – Ruler tool to measure distances and lengths.
252
+ - 🔗 **Linking** – Synchronize sagittal, coronal, and axial slices. This makes it easy to locate the same point across all views.
253
+ - 🧊 **3D Toggle** – Show or hide 3D widgets in the view.
254
+
255
+ <p align="center">
256
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/toolbar_tools.png"
257
+ alt="MELAGE Tools Toolbar"
258
+ width="500"
259
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
260
+ </p>
261
+
262
+ <p align="center"><em>Tools toolbar with essential navigation and annotation functions</em></p>
263
+
264
+
265
+ ## 4️⃣ Panning Toolbar
266
+
267
+ Just **below the Project Toolbar**, you’ll find the **Panning Toolbar** with two options:
268
+
269
+ - 🖱 **Arrow** – Standard selection arrow.
270
+ - ✋ **Panning** – Drag to move around within a slice (useful after zooming).
271
+
272
+ <p align="center">
273
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/panning_toolbar.png"
274
+ alt="MELAGE Panning Toolbar"
275
+ width="220"
276
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
277
+ </p>
278
+
279
+ <p align="center"><em>Panning toolbar for navigating slices</em></p>
280
+
281
+
282
+
283
+ ## 5️⃣ Segmentation Toolbar
284
+
285
+ On the **right side of the Panning Toolbar**, you’ll find the **Segmentation Toolbar**. From left to right:
286
+
287
+ - 🩹 **Eraser** – Remove segmentation from the image.
288
+ - 🩹➕ **Eraser X Times** – Erase the same region across multiple following slices.
289
+ - 🖊 **Pen** – Freehand segmentation with arbitrary closed shapes.
290
+ - 🌀 **Contour** – Draw a contour to segment everything inside it.
291
+ - 🌀➕ **Contour X Times** – Apply contour segmentation across multiple slices.
292
+ - ⭕ **Circle** – Segment a region using a circle with an adjustable radius.
293
+ - 🎨 **Activated Color** – Displays the currently active segmentation color.
294
+ - 🏷 **Color Name** – Shows the name of the active segmentation color.
295
+
296
+ <p align="center">
297
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/segmentation_toolbar.png"
298
+ alt="MELAGE Segmentation Toolbar"
299
+ width="600"
300
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
301
+ </p>
302
+
303
+ <p align="center"><em>Segmentation toolbar for drawing and editing regions</em></p>
304
+
305
+
306
+
307
+ ## 6️⃣ Exit Toolbar
308
+
309
+ Finally, at the far right, you’ll find the **Exit Toolbar**, which includes:
310
+
311
+ - 🧩 **Logo** – Displays the MELAGE / MELAGE+ logo.
312
+ - ❌ **Exit** – Closes the application.
313
+
314
+ <p align="center">
315
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/exit_toolbar.png"
316
+ alt="MELAGE Exit Toolbar"
317
+ width="300"
318
+ style="border:1px solid #ccc; border-radius:6px; object-fit:contain;">
319
+ </p>
320
+
321
+ <p align="center"><em> Exit toolbar with logo and close button</em></p>
322
+
323
+ # Widgets
324
+
325
+ ## 🎨 Color widget
326
+
327
+ <table>
328
+ <tr>
329
+ <td>
330
+ <p align="center">
331
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_color.png" alt="MELAGE" width="750" style="border:1px solid black" object-fit="contain"/><br>
332
+ <font size="2"> Color </font>
333
+ </p>
334
+ </td>
335
+ <td>
336
+ <p align="center">
337
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_color_additional.png" alt="MELAGE" width="1000" style="border:1px solid black" object-fit="contain"/><br>
338
+ <font size="2"> Right click</font>
339
+ </p>
340
+ </td>
341
+ <td>
342
+ <font size="5">
343
+ Choose, activate, and search label colors (LUTs) for different structures. You can switch styles, import your own, and customize labels.
344
+ </font>
345
+ </td>
346
+ </tr>
347
+ </table>
348
+
349
+ You can freely change styles—or add your own.
350
+ Currently default styles come from these human brain atlases:
351
+
352
+ - 🍼 [Albert Neonatal brain atlas](https://brain-development.org/brain-atlases/neonatal-brain-atlases/neonatal-brain-atlas-gousias/)
353
+ - 🍼 [M-CRIB 2.0 neonatal brain atlas](https://osf.io/4vthr/)
354
+ - 🧠 Adult brain (generic)
355
+
356
+ There are also two tissue-based styles and one simple scheme.
357
+ You can import a new style via **Import**.
358
+ Label names are editable, and you can create a new label by clicking a color in the **Segmentation Toolbar**.
359
+
360
+ <p align="center">
361
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_color_add.png" alt="MELAGE" width="300" style="border:1px solid black" object-fit="contain"/><br>
362
+ <font size="2"> Add a color</font>
363
+ </p>
364
+
365
+ Pick a new color here. Then you’ll see a second window:
366
+
367
+ <p align="center">
368
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_color_add2.png" alt="MELAGE" width="300" style="border:1px solid black" object-fit="contain"/><br>
369
+ <font size="2"> Add index and name</font>
370
+ </p>
371
+
372
+ Set the **index** and **name** for the new color.
373
+ If the index already exists, the new color will replace the previous one.
374
+
375
+
376
+
377
+ ## 🧰 Image enhancement widget
378
+
379
+ <table>
380
+ <tr>
381
+ <td>
382
+ <p align="center">
383
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_mri.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/><br>
384
+ <font size="2">Image enhancement</font>
385
+ </p>
386
+ </td>
387
+ <td>
388
+ <p align="center">
389
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_mri2.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/><br>
390
+ <font size="2">Image enhancement (continued)</font>
391
+ </p>
392
+ </td>
393
+ </tr>
394
+ </table>
395
+
396
+ Enhance images with:
397
+ - 🔆 **Brightness & contrast**
398
+ - 🧱 **Band-pass & Hamming filters**
399
+ - 🧭 **Sobel edge operator**
400
+ - 🔄 **Rotation** by anatomical planes (sagittal, axial, coronal) or combinations
401
+
402
+ There’s also a **“sagittal ↔ coronal”** swap for datasets that need plane reorientation (handy for certain top/bottom image workflows).
403
+
404
+
405
+
406
+ ## 📋 Table widget
407
+
408
+ <p align="center">
409
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_table.png" alt="MELAGE" width="700" style="border:1px solid black" object-fit="contain"/><br>
410
+ <font size="2">Table widget</font>
411
+ </p>
412
+
413
+ This table includes:
414
+ - 📝 **Description** – additional notes
415
+ - 🖼 **Image type** – **top (first image)** or **bottom (second image)**
416
+ - 📏 **Measure 1** – surface or length (ruler)
417
+ - 📐 **Measure 2** – perimeter or angle (ruler)
418
+ - 🧾 **Slice** – slice number
419
+ - 🪟 **Window name** – sagittal, coronal, or axial
420
+ - 🎯 **CenterXY** – center position
421
+ - 🗂 **FileName** – file name
422
+
423
+ <p align="center">
424
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_table2.png" alt="MELAGE" width="300" style="border:1px solid black" object-fit="contain"/><br>
425
+ <font size="2">Table widget (context menu)</font>
426
+ </p>
427
+
428
+ Right-click options:
429
+ - ➕ **Add** – insert a new row
430
+ - ✏️ **Edit** – edit the current cell
431
+ - 📤 **Export** – save table as CSV
432
+ - 🗑 **Remove** – delete the current row
433
+
434
+
435
+ ## 🖼️ Batch Images widget
436
+
437
+ <p align="center">
438
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_images.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/><br>
439
+ <font size="2">Images widget</font>
440
+ </p>
441
+
442
+ Manage a set of images (e.g., different modalities or sessions) and their corresponding segmentations.
443
+ - Toggle the **eye icon** to show/hide an image.
444
+ - A segmentation file **requires** its image to be loaded first.
445
+
446
+ <p align="center">
447
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_images2.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/><br>
448
+ <font size="2">Images widget (context menu)</font>
449
+ </p>
450
+
451
+ Right-click options:
452
+ - 📥 **Import**
453
+ - **Images** – import one or more images
454
+ - **Segmentation** – import a segmentation associated with a loaded image
455
+ - 🗑 **Remove Selected** – remove the highlighted item
456
+ - 🧹 **Clear All** – clear all non-active images
457
+
458
+ When importing, you’ll see:
459
+
460
+ <p align="center">
461
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_images3.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
462
+ <font size="2">Import dialog</font>
463
+ </p>
464
+
465
+ Choose the **image/segmentation type** from the dialog.
466
+ Use **Preview** to inspect an image before opening it. 👀
467
+
468
+
469
+
470
+ ## 🌈 Segmentation intensity widget
471
+
472
+ <p align="center">
473
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_segintensity.png" alt="MELAGE" width="300" style="border:1px solid black" object-fit="contain"/><br>
474
+ <font size="2">Segmentation intensity</font>
475
+ </p>
476
+
477
+ Adjust the **visual intensity** of the segmentation overlay.
478
+ - **0** ➜ hide segmentation
479
+ - Higher values ➜ stronger overlay
480
+
481
+
482
+
483
+ ## 🖍️ Marker size widget
484
+
485
+ <p align="center">
486
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/widget_marker.png" alt="MELAGE" width="300" style="border:1px solid black" object-fit="contain"/><br>
487
+ <font size="2">Marker size</font>
488
+ </p>
489
+
490
+ Controls (top ➜ bottom):
491
+ - ⭕ **Circle radius** for region selection
492
+ - ✏️ **Pen thickness** for contour drawing
493
+
494
+
495
+ # Tabs
496
+
497
+ MELAGE includes three tabs:
498
+
499
+ <p align="center">
500
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tabs.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
501
+ <font size="2">Tabs overview</font>
502
+ </p>
503
+
504
+ ### 1) 🤝 Mutual view
505
+ - Process **two images at once**.
506
+ - Each image shows three planes in the order: **coronal**, **sagittal**, **axial**.
507
+ - The number above each plane is the **slice index**.
508
+ - Side letters indicate orientation: **S** (sagittal), **A** (axial), **C** (coronal).
509
+ - You can segment and process either image directly in this view.
510
+ - The **top panel** shows the **first (top) image**; the **bottom panel** shows the **second (bottom) image**.
511
+ - If one image is closed, the tab displays the three planes of the remaining image:
512
+
513
+ <p align="center">
514
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/widget_tab_mutualview.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
515
+ </p>
516
+
517
+ <p align="center">
518
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/widget_tab_mutualview2.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
519
+ </p>
520
+
521
+ ### 2) 🧩 Top image (first image) workspace
522
+ Designed to focus on **one plane at larger size** while tracking the **instant 3D view** of the segmentation.
523
+ - 📜 **Horizontal slider**: scroll through slices
524
+ - 🔘 **Plane selection**: choose sagittal, axial, or coronal
525
+ - 👁 **Show seg**: toggle segmentation overlay
526
+ - 🧊 **3D visualization**: real-time 3D feedback
527
+
528
+ <p align="center">
529
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/tab1.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
530
+ </p>
531
+
532
+ ### 3) 🧩 Bottom image (second image) workspace
533
+ Same layout and controls, dedicated to the **second (bottom) image**.
534
+ - 📜 **Horizontal slider**: scroll through slices
535
+ - 🔘 **Plane selection**: sagittal, axial, or coronal
536
+ - 👁 **Show seg**: toggle segmentation overlay
537
+ - 🧊 **3D visualization**: real-time 3D feedback
538
+
539
+ <p align="center">
540
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/tab2.png" alt="MELAGE" width="800" style="border:1px solid black" object-fit="contain"/><br>
541
+ </p>
542
+
543
+ # 🧊 3D Visualization
544
+
545
+ Right-click on the 3D region to access various options:
546
+
547
+ <p align="center">
548
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/3D_rightc.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/><br>
549
+ </p>
550
+
551
+ ## 🔎 GoTo
552
+ - Activating **GoTo** lets you jump to the corresponding location in the image.
553
+ - The approximate mouse position in 3D space appears at the **bottom-right** of the window.
554
+ - The selected point will also appear in the closest sagittal, coronal, or axial plane.
555
+
556
+ <p align="center">
557
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/3D_rightc_goto.png" alt="MELAGE" width="700" style="border:1px solid black" object-fit="contain"/><br>
558
+ </p>
559
+
560
+
561
+
562
+ ## 🧩 Segmentation
563
+ - Toggle segmentation overlay within the 3D view.
564
+ - ⚠️ Tip: If it doesn’t activate immediately, switch to another tab and return.
565
+
566
+ <p align="center">
567
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/3D_rightc_seg.png" alt="MELAGE" width="700" style="border:1px solid black" object-fit="contain"/><br>
568
+ </p>
569
+
570
+
571
+ ## 🧩 Transparent 3D Overlay
572
+
573
+ MELAGE allows users to seamlessly overlay segmentation masks on top of anatomical images within the 3D visualization module. This feature enables clear comparison between raw data and segmented structures, while maintaining anatomical context.
574
+
575
+ - **Transparency Control**: Adjust the opacity of the segmentation layer for balanced visualization.
576
+ - **Interactive Toggle**: Enable or disable overlays dynamically without reloading the view.
577
+ - **Integrated Navigation**: Selected points remain synchronized across sagittal, coronal, and axial planes.
578
+ - ⚠️ *Tip*: If the overlay does not activate immediately, switch to another tab and return.
579
+
580
+ <p align="center">
581
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/transparent_3D_overlay_0.png"
582
+ alt="MELAGE Transparent 3D Overlay" width="700"
583
+ style="border:1px solid black; object-fit:contain"/><br>
584
+ <em>Transparent 3D overlay.</em>
585
+ </p>
586
+
587
+
588
+ <p align="center">
589
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/transparent_3D_overlay.png"
590
+ alt="MELAGE Transparent 3D Overlay" width="700"
591
+ style="border:1px solid black; object-fit:contain"/><br>
592
+ <em>Transparent 3D overlay of segmentation mask and anatomical image in MELAGE.</em>
593
+ </p>
594
+
595
+
596
+ ## 🎨 BG color
597
+ - Change the background color of the 3D visualization.
598
+ - Choose between different themes to improve contrast.
599
+
600
+
601
+
602
+ ## 🖌️ Painting
603
+ <p align="center">
604
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/3D_rightc_paint.png" alt="MELAGE" width="700" style="border:1px solid black" object-fit="contain"/><br>
605
+ </p>
606
+
607
+ ### ✏️ Draw
608
+ - Cut parts of the 3D image interactively by drawing.
609
+
610
+ <p align="center">
611
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/cut_3D.png" alt="MELAGE" width="700" style="border:1px solid black" object-fit="contain"/>
612
+ </p>
613
+
614
+
615
+
616
+ ### 🌈 Image render
617
+ - Render the 3D image using different color maps.
618
+ - The **Segmentation Intensity widget** can enhance visualization.
619
+
620
+ <table>
621
+ <tr>
622
+ <td>
623
+ <p align="center">
624
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
625
+ <font size="2">Rainbow</font>
626
+ </p>
627
+ </td>
628
+ <td>
629
+ <p align="center">
630
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render2.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
631
+ <font size="2">Gray</font>
632
+ </p>
633
+ </td>
634
+ <td>
635
+ <p align="center">
636
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render3.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
637
+ <font size="2">Jet</font>
638
+ </p>
639
+ </td>
640
+ </tr>
641
+ <tr>
642
+ <td>
643
+ <p align="center">
644
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render4.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
645
+ <font size="2">Gnuplot</font>
646
+ </p>
647
+ </td>
648
+ <td>
649
+ <p align="center">
650
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render5.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
651
+ <font size="2">Gnuplot2</font>
652
+ </p>
653
+ </td>
654
+ <td>
655
+ <p align="center">
656
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/3D_rightc_paint_render6.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
657
+ <font size="2">Original</font>
658
+ </p>
659
+ </td>
660
+ </tr>
661
+ </table>
662
+
663
+
664
+
665
+ ## 🧭 Axis
666
+ - Display axes alongside the 3D visualization for orientation.
667
+
668
+ ## 🗺️ Grid
669
+ - Show a reference grid within the 3D window.
670
+
671
+ # 🛠️ Tools
672
+
673
+ ## ✏️ Segmentation options with contour
674
+ Right-click on a segmented contour to access these options:
675
+ - 🎯 **Center** – show center of the region
676
+ - 📐 **Surface area** – compute region surface
677
+ - 📏 **Perimeter** – measure perimeter length
678
+ - 📤 **Send to table** – export all measurements to the table widget
679
+ - ➕ **Add to interpolation** – add the current slice to slice-to-slice interpolation
680
+ - ▶️ **Apply interpolation** – apply interpolation using current and previous slices
681
+
682
+ <p align="center">
683
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/tools_seg.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
684
+ </p>
685
+
686
+
687
+ ## 🔀 Interpolation between slices
688
+ To interpolate across slices:
689
+ 1. ✅ Activate the colors you want to interpolate
690
+ 2. 🖼 Select a segmented region in one plane (sagittal, axial, or coronal)
691
+ 3. ➕ Add more regions from other slices (as many as needed)
692
+ 4. 🖱 Right-click → **Apply interpolation**
693
+ 5. ⏳ Wait for interpolation results
694
+
695
+
696
+
697
+ ## 📏 Ruler
698
+ The ruler measures distances between two points in an image.
699
+ Right-click on a ruler gives access to:
700
+ - 🎯 **Center position**
701
+ - 📏 **Length**
702
+ - 📐 **Line angle**
703
+ - 🗑 **Remove** – delete the current ruler
704
+ - 📤 **Send to table** – export ruler data
705
+
706
+ <p align="center">
707
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/additional_resources/tools_ruler.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
708
+ </p>
709
+
710
+ 🔄 You can add unlimited rulers.
711
+
712
+
713
+
714
+ ## 🧰 Tools menu
715
+ Options available under the **Tools menu**:
716
+
717
+ - ↩️ **Undo** – revert up to 10 segmentations
718
+ - ↪️ **Redo** – redo up to 10 actions
719
+ - 🧪 **Preprocessing** – N4 Bias Field Correction, Image Masking, BET, DeepBET, Thresholding, Masking Ops, Change CS
720
+ - ℹ️ **Basic Info** – Histogram, Resize, Image Info
721
+
722
+ <p align="center">
723
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_tools.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
724
+ </p>
725
+
726
+ ### 🧮 N4 Bias Field Correction
727
+ Uses SimpleITK. Parameters include:
728
+ - Otsu thresholding for mask creation
729
+ - Fitting level
730
+ - Shrinking factor
731
+ - Max iterations
732
+ - Image selection (top = first image, bottom = second image)
733
+
734
+ After running, you can restore the **Original** image if needed.
735
+
736
+ <p align="center">
737
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_n4b.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
738
+ </p>
739
+
740
+
741
+ ### 🎭 Image Masking
742
+ Keep or remove image parts using segmentation masks:
743
+ - Image selection (top or bottom)
744
+ - Action: **Keep** / **Remove**
745
+ - Mask color
746
+ - Apply button
747
+
748
+ Reset by using mask color `9876_Combined`.
749
+
750
+ <p align="center">
751
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_masking.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
752
+ </p>
753
+
754
+
755
+
756
+ ### 🧠 Brain Extraction Tool (BET)
757
+ Implements [Smith 2002](https://pubmed.ncbi.nlm.nih.gov/12391568/).
758
+ Parameters:
759
+ - Advanced mode
760
+ - Iterations
761
+ - Adaptive thresholding
762
+ - Fractional threshold
763
+ - Search distance
764
+ - Radius of curvature
765
+
766
+ <p align="center">
767
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_bet.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
768
+ </p>
769
+
770
+
771
+
772
+ ### 🤖 Deep Learning Brain Extraction
773
+ DL-based brain extraction with configurable options:
774
+ - Advanced mode (editable)
775
+ - Image selection
776
+ - Model selection
777
+ - CUDA acceleration (optional)
778
+ - Threshold (-4 to 4)
779
+ - Network weights path
780
+ - Apply button
781
+
782
+ 💡 Tip: Adjust threshold without rerunning the model.
783
+
784
+ <p align="center">
785
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_deepbet.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
786
+ </p>
787
+
788
+
789
+ ### ⚖️ Image Thresholding
790
+ Multi-Otsu based thresholding:
791
+ - Image selection
792
+ - Number of classes
793
+ - Apply
794
+
795
+ <p align="center">
796
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_threshold.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
797
+ </p>
798
+
799
+
800
+ ### ➕➖ Masking Operations
801
+ Combine masks using summation or subtraction:
802
+ - Masking color(s)
803
+ - Operation
804
+ - Image selection
805
+ - Apply
806
+
807
+ <p align="center">
808
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_maskO.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
809
+ </p>
810
+
811
+
812
+
813
+ ### 🧭 Change CS (Coordinate System)
814
+ - Image selection
815
+ - From (current system)
816
+ - To (desired system)
817
+ - Apply
818
+
819
+ <p align="center">
820
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_cs.png" alt="MELAGE" width="600" style="border:1px solid black" object-fit="contain"/>
821
+ </p>
822
+
823
+
824
+
825
+ ### 📊 Basic Info
826
+ Tools for inspecting and resizing images.
827
+
828
+ <p align="center">
829
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_basic.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
830
+ </p>
831
+
832
+ - 📈 **Histogram** – view image histogram
833
+ - 📐 **Resize** – isotropic resize
834
+
835
+ <p align="center">
836
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_resize.png" alt="MELAGE" width="400" style="border:1px solid black" object-fit="contain"/>
837
+ </p>
838
+
839
+ - ℹ️ **Image info** – metadata with search
840
+
841
+ <p align="center">
842
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/tools_imageinfo.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
843
+ </p>
844
+
845
+
846
+
847
+ # 📂 File Menu
848
+
849
+ <p align="center">
850
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/menu_file.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
851
+ </p>
852
+
853
+ Options include:
854
+ - 🆕 **New project** – start fresh
855
+ - 📂 **Load project** – open saved project
856
+ - 💾 **Save** – overwrite project
857
+ - 💾 **Save as** – save under new name
858
+ - 📥 **Import** – import segmentation
859
+
860
+ <p align="center">
861
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/menu_file_import.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
862
+ </p>
863
+
864
+ - 📤 **Export** – save modified image/segmentation with suffix
865
+
866
+ <p align="center">
867
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/menu_file_export.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
868
+ </p>
869
+
870
+ - 📸 **Screenshot** – capture a plane or whole scene
871
+
872
+ <p align="center">
873
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/menu_file_ss.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
874
+ </p>
875
+
876
+ - ❌ **Close top image** – close first (top) image
877
+ - ❌ **Close bottom image** – close second (bottom) image
878
+ - ⚙️ **Settings** – change application defaults
879
+
880
+ <p align="center">
881
+ <img src="https://raw.githubusercontent.com/BahramJafrasteh/MELAGE/main/resource/manual_images/menu_file_settings.png" alt="MELAGE" width="500" style="border:1px solid black" object-fit="contain"/>
882
+ </p>
883
+
884
+ - 🚪 **Exit** – close app (confirmation window will ask to save project)
885
+
886
+ # 📜 License
887
+ For licensing inquiries, please contact:
888
+ - [melage@inbica.com](mailto:melage@inbica.com)
889
+ - [jafrasteh.bahram@inibica.es](mailto:jafrasteh.bahram@inibica.es)
890
+
891
+ ## Protection & Registration
892
+ **MELAGE** is registered in the **Electronic Register of Intellectual Property** as software, under file **FCAD-22002**, by the Technology Transfer Office of the Andalusian Public Health System (OTT-SSPA).
893
+ - **Identifier:** 2211222681375
894
+ - [View registration details on SafeCreative](https://www.safecreative.org/work/2211222681375-melage?0)
895
+ This legal protection ensures intellectual property rights are formally secured.
896
+
897
+
898
+ # 📖 Citation & Acknowledgements
899
+ If you use **MELAGE** in your research, please cite the following work:
900
+
901
+ > Jafrasteh, B., Lubián-López, S. P., & Benavente-Fernández, I. (2023).
902
+ > *MELAGE: A purely Python-based Neuroimaging Software (Neonatal).*
903
+ > arXiv preprint arXiv:2309.07175
904
+
905
+ We would like to acknowledge all contributors and collaborators who have supported the development and testing of MELAGE.
906
+
907
+
908
+
909
+ # 🚀 Releases
910
+ Stable releases and updates of **MELAGE** are available on the [GitHub Releases page](https://github.com/BahramJafrasteh/MELAGE/releases).
911
+ - 🟢 **Stable releases**: Fully tested, recommended for production and research use.
912
+ - 🧪 **Pre-releases / beta versions**: For testing new features and providing feedback.
913
+
914
+ Stay updated by watching the repository for new release notifications.