melage 0.0.70__py3-none-any.whl → 0.0.72__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.
- melage-0.0.72.dist-info/METADATA +914 -0
- {melage-0.0.70.dist-info → melage-0.0.72.dist-info}/RECORD +5 -5
- melage-0.0.70.dist-info/METADATA +0 -740
- {melage-0.0.70.dist-info → melage-0.0.72.dist-info}/WHEEL +0 -0
- {melage-0.0.70.dist-info → melage-0.0.72.dist-info}/entry_points.txt +0 -0
- {melage-0.0.70.dist-info → melage-0.0.72.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,914 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: melage
|
|
3
|
+
Version: 0.0.72
|
|
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
|
+
- [b.jafrasteh@gmail.com](mailto:b.jafrasteh@gmail.com)
|
|
889
|
+
- [baj4003@med.cornell.edu](mailto:baj4003@med.cornell.edu)
|
|
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.
|