Batch Processing

Process Multiple Images

Command Line

Analyze all images in a directory:

nema_quant --input-dir images/ --output-dir results/ --parallel

With options:

nema_quant --input-dir images/ \
           --output-dir results/ \
           --config config.yaml \
           --parallel \
           --num-workers 4

Python API

from pathlib import Path
from nema_quant import analysis
from concurrent.futures import ProcessPoolExecutor

image_dir = Path('images/')
output_dir = Path('results/')
output_dir.mkdir(exist_ok=True)

def process_image(image_path):
    phantom = NemaPhantom(image_path=str(image_path))
    metrics = analysis.calculate_image_quality_metrics(phantom)
    return metrics

# Process in parallel
with ProcessPoolExecutor(max_workers=4) as executor:
    images = list(image_dir.glob('*.nii.gz'))
    results = executor.map(process_image, images)

# Save results
for img, result in zip(images, results):
    output_file = output_dir / f"{img.stem}_metrics.json"
    result.save(output_file)