help@rskworld.in +91 93305 39277
RSK World
  • Home
  • Development
    • Web Development
    • Mobile Apps
    • Software
    • Games
    • Project
  • Technologies
    • Data Science
    • AI Development
    • Cloud Development
    • Blockchain
    • Cyber Security
    • Dev Tools
    • Testing Tools
  • Blog
  • About
  • Contact

Theme Settings

Color Scheme
Display Options
Font Size
100%
Back to Project
RSK World
medical-imaging
RSK World
medical-imaging
Medical Imaging Dataset - X-ray CT Scan MRI + Disease Detection + Computer-Aided Diagnosis + Medical AI
medical-imaging
  • __pycache__
  • data
  • scripts
  • .gitignore475 B
  • CONTRIBUTING.md1.7 KB
  • CT_MRI_LOCATION.md6 KB
  • DATASET_SUMMARY.md4.1 KB
  • DISCLAIMER.md2.1 KB
  • DOWNLOAD_INSTRUCTIONS.md7.5 KB
  • ERROR_CHECK_REPORT.md4.2 KB
  • FINAL_DATASET_SUMMARY.md5.8 KB
  • LICENSE784 B
  • PROJECT_IMAGE_NOTE.md1.2 KB
  • PROJECT_SUMMARY.md3.9 KB
  • QUICK_START.md2.9 KB
  • README.md4.3 KB
  • RELEASE_NOTES.md5 KB
  • create_directories.py1.5 KB
  • download_all_ct_mri.py12.2 KB
  • download_all_datasets.py8.9 KB
  • download_ct_mri_datasets.py10.1 KB
  • download_ct_mri_kaggle.bat1.5 KB
  • download_from_github.py8.1 KB
  • download_helper.py4.4 KB
  • download_kaggle_datasets.bat2.1 KB
  • download_public_datasets.py16.7 KB
  • download_summary.json211 B
  • example_usage.py2.7 KB
  • generate_sample_data.py15.9 KB
  • index.html43.2 KB
  • medical-imaging.zip2.1 MB
  • organize_medmnist.py1.3 KB
  • organize_mri_data.py584 B
  • project_info.json1.4 KB
  • requirements.txt492 B
  • setup.py2 KB
example_usage.pypreprocessing.cpython-313.pyctrain.jsonvisualize_data.cpython-313.pycindex.htmlgo.mod.envgenerate_sample_data.py
example_usage.py
Raw Download
Find: Go to:
"""
Medical Imaging Dataset - Example Usage
=========================================

Project: Medical Imaging Dataset
Website: https://rskworld.in
Contact: help@rskworld.in, support@rskworld.in
Phone: +91 93305 39277
Founder: Molla Samser
Designer & Tester: Rima Khatun

This script demonstrates how to use the Medical Imaging Dataset
for loading, preprocessing, and visualizing medical images.
"""

from scripts.load_data import MedicalImagingDataset
from scripts.preprocess import preprocess_image, batch_preprocess
from scripts.visualize import visualize_medical_image, plot_statistics


def main():
    """
    Main function demonstrating dataset usage.
    """
    print("=" * 60)
    print("Medical Imaging Dataset - Example Usage")
    print("=" * 60)
    print()
    
    # Initialize dataset
    print("1. Initializing Medical Imaging Dataset...")
    dataset = MedicalImagingDataset(data_path='./data')
    print("   [OK] Dataset initialized")
    print()
    
    # Get dataset information
    print("2. Getting dataset information...")
    info = dataset.get_dataset_info()
    print(f"   X-ray images: {info['xray_count']}")
    print(f"   CT scan images: {info['ct_count']}")
    print(f"   MRI images: {info['mri_count']}")
    print(f"   Total images: {info['total_images']}")
    print()
    
    # Load images
    print("3. Loading images...")
    xray_images, xray_labels = dataset.load_xray_images()
    ct_images, ct_labels = dataset.load_ct_images()
    mri_images, mri_labels = dataset.load_mri_images()
    
    print(f"   [OK] Loaded {len(xray_images)} X-ray images")
    print(f"   [OK] Loaded {len(ct_images)} CT scan images")
    print(f"   [OK] Loaded {len(mri_images)} MRI images")
    print()
    
    # Preprocessing example
    print("4. Preprocessing example...")
    print("   To preprocess an image, use:")
    print("   processed = preprocess_image('path/to/image.png', image_type='xray')")
    print()
    
    # Visualization example
    print("5. Visualization example...")
    print("   To visualize an image, use:")
    print("   visualize_medical_image('path/to/image.png', 'path/to/label.json')")
    print()
    
    # Plot statistics
    print("6. Plotting dataset statistics...")
    try:
        plot_statistics(info)
        print("   [OK] Statistics plot displayed")
    except Exception as e:
        print(f"   [WARNING] Could not display plot: {e}")
    print()
    
    print("=" * 60)
    print("Example usage completed!")
    print("=" * 60)
    print()
    print("For more information, visit: https://rskworld.in")
    print("Contact: help@rskworld.in")


if __name__ == '__main__':
    main()

88 lines•2.7 KB
python
index.html
Raw Download
Find: Go to:
<!DOCTYPE html>
<!--
    Medical Imaging Dataset - Demo Page
    ====================================
    
    Project: Medical Imaging Dataset
    Website: https://rskworld.in
    Contact: help@rskworld.in, support@rskworld.in
    Phone: +91 93305 39277
    Founder: Molla Samser
    Designer & Tester: Rima Khatun
    
    This project contains medical images including X-rays, CT scans, and MRI images
    with diagnostic labels and annotations for medical image analysis.
-->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Medical Imaging Dataset - RSK World</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root {
            --primary-color: #0d6efd;
            --secondary-color: #6c757d;
            --info-color: #0dcaf0;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
        }
        
        .hero-section {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 80px 0;
            margin-bottom: 50px;
        }
        
        .card {
            border: none;
            border-radius: 15px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            transition: transform 0.3s ease;
            margin-bottom: 30px;
        }
        
        .card:hover {
            transform: translateY(-10px);
        }
        
        .feature-icon {
            font-size: 3rem;
            color: var(--info-color);
            margin-bottom: 20px;
        }
        
        .tech-badge {
            display: inline-block;
            padding: 5px 15px;
            margin: 5px;
            background: #e9ecef;
            border-radius: 20px;
            font-size: 0.9rem;
        }
        
        .footer {
            background: #212529;
            color: white;
            padding: 40px 0;
            margin-top: 50px;
        }
        
        code {
            font-family: 'Courier New', Courier, monospace;
            font-size: 0.9rem;
            padding: 2px 6px;
            border-radius: 4px;
        }
        
        .bg-dark code {
            background: rgba(255, 255, 255, 0.1);
            padding: 8px 12px;
            display: block;
            margin: 5px 0;
            border-left: 3px solid var(--info-color);
        }
        
        .bg-dark code.text-info {
            border-left-color: var(--info-color);
        }
        
        .bg-dark code.text-success {
            border-left-color: #28a745;
        }
        
        .bg-dark code.text-warning {
            border-left-color: #ffc107;
        }
        
        ul li {
            margin: 8px 0;
        }
        
        .card h4, .card h5 {
            color: #333;
        }
    </style>
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <div class="container">
            <a class="navbar-brand" href="#">
                <i class="fas fa-image text-info"></i> Medical Imaging Dataset
            </a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav ms-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="#overview">Overview</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#features">Features</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#technologies">Technologies</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#gallery">Gallery</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#download">Download</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <!-- Hero Section -->
    <section class="hero-section">
        <div class="container text-center">
            <h1 class="display-4 fw-bold mb-4">
                <i class="fas fa-image text-info"></i> Medical Imaging Dataset
            </h1>
            <p class="lead mb-4">Medical image dataset with X-rays, CT scans, and MRI images with diagnostic labels for medical image analysis and disease detection.</p>
            <div class="mt-4">
                <span class="badge bg-warning text-dark fs-6 px-3 py-2">Advanced Difficulty</span>
                <span class="badge bg-info text-dark fs-6 px-3 py-2 ms-2">Image Data</span>
            </div>
        </div>
    </section>

    <!-- Overview Section -->
    <section id="overview" class="container mb-5">
        <div class="row">
            <div class="col-lg-8 mx-auto">
                <div class="card">
                    <div class="card-body p-5">
                        <h2 class="card-title mb-4">
                            <i class="fas fa-info-circle text-info"></i> Project Overview
                        </h2>
                        <p class="card-text lead">
                            This dataset contains medical images including X-rays, CT scans, and MRI images with diagnostic labels and annotations. 
                            Perfect for medical image analysis, disease detection, computer-aided diagnosis, and healthcare AI applications.
                        </p>
                        <p class="card-text">
                            The dataset is designed for researchers, data scientists, and developers working on medical imaging AI projects. 
                            It includes various imaging modalities with corresponding diagnostic information to facilitate training and evaluation 
                            of machine learning models for healthcare applications.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Features Section -->
    <section id="features" class="container mb-5">
        <h2 class="text-center mb-5 text-white">
            <i class="fas fa-star text-warning"></i> All Project Features
        </h2>
        
        <!-- Feature 1: Data Loading -->
        <div class="card mb-4">
            <div class="card-body p-4">
                <div class="row">
                    <div class="col-md-2 text-center">
                        <i class="fas fa-database feature-icon"></i>
                    </div>
                    <div class="col-md-10">
                        <h4 class="card-title mb-3">
                            <i class="fas fa-code text-info"></i> 1. Data Loading & Dataset Management
                        </h4>
                        <p class="card-text mb-3">
                            Load medical images from X-ray, CT scan, and MRI datasets with automatic label matching. 
                            Supports multiple image formats including PNG, JPG, JPEG, and DICOM.
                        </p>
                        <div class="bg-dark text-light p-3 rounded mb-3">
                            <code class="text-info">from scripts.load_data import MedicalImagingDataset</code><br>
                            <code class="text-success">dataset = MedicalImagingDataset(data_path='./data')</code><br>
                            <code class="text-warning">xray_images, xray_labels = dataset.load_xray_images()</code><br>
                            <code class="text-warning">ct_images, ct_labels = dataset.load_ct_images()</code><br>
                            <code class="text-warning">mri_images, mri_labels = dataset.load_mri_images()</code>
                        </div>
                        <ul class="list-unstyled">
                            <li><i class="fas fa-check text-success"></i> Automatic image-label pairing</li>
                            <li><i class="fas fa-check text-success"></i> Support for PNG, JPG, JPEG formats</li>
                            <li><i class="fas fa-check text-success"></i> DICOM file support (with pydicom)</li>
                            <li><i class="fas fa-check text-success"></i> JSON label loading with error handling</li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 2: Image Preprocessing -->
        <div class="card mb-4">
            <div class="card-body p-4">
                <div class="row">
                    <div class="col-md-2 text-center">
                        <i class="fas fa-magic feature-icon"></i>
                    </div>
                    <div class="col-md-10">
                        <h4 class="card-title mb-3">
                            <i class="fas fa-sliders-h text-info"></i> 2. Advanced Image Preprocessing
                        </h4>
                        <p class="card-text mb-3">
                            Professional preprocessing pipeline with modality-specific enhancements including CLAHE, 
                            noise reduction, normalization, and window/level adjustments.
                        </p>
                        <div class="bg-dark text-light p-3 rounded mb-3">
                            <code class="text-info">from scripts.preprocess import preprocess_image</code><br>
                            <code class="text-success">processed = preprocess_image('image.png', image_type='xray')</code><br>
                            <code class="text-success"># X-ray: CLAHE + Gaussian blur</code><br>
                            <code class="text-success"># CT Scan: Histogram equalization + Median filter</code><br>
                            <code class="text-success"># MRI: CLAHE + Bilateral filter</code>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <strong>Preprocessing Functions:</strong>
                                <ul>
                                    <li>CLAHE (Contrast Limited AHE)</li>
                                    <li>Gaussian blur for noise reduction</li>
                                    <li>Histogram equalization</li>
                                    <li>Median filtering</li>
                                    <li>Bilateral filtering</li>
                                    <li>Pixel normalization [0, 1]</li>
                                </ul>
                            </div>
                            <div class="col-md-6">
                                <strong>Modality-Specific:</strong>
                                <ul>
                                    <li><strong>X-ray:</strong> CLAHE + Gaussian blur</li>
                                    <li><strong>CT Scan:</strong> Histogram + Median filter</li>
                                    <li><strong>MRI:</strong> CLAHE + Bilateral filter</li>
                                    <li>Window/Level transformation</li>
                                    <li>Contrast enhancement</li>
                                    <li>Batch preprocessing support</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 3: Visualization -->
        <div class="card mb-4">
            <div class="card-body p-4">
                <div class="row">
                    <div class="col-md-2 text-center">
                        <i class="fas fa-chart-line feature-icon"></i>
                    </div>
                    <div class="col-md-10">
                        <h4 class="card-title mb-3">
                            <i class="fas fa-eye text-info"></i> 3. Medical Image Visualization
                        </h4>
                        <p class="card-text mb-3">
                            Visualize medical images with diagnostic annotations, labels, and overlays. 
                            Includes batch visualization and preprocessing comparison tools.
                        </p>
                        <div class="bg-dark text-light p-3 rounded mb-3">
                            <code class="text-info">from scripts.visualize import visualize_medical_image</code><br>
                            <code class="text-success">visualize_medical_image('image.png', 'label.json')</code><br>
                            <code class="text-warning">visualize_batch(images, labels, cols=3)</code><br>
                            <code class="text-warning">compare_preprocessing('image.png')</code><br>
                            <code class="text-warning">plot_statistics(dataset_info)</code>
                        </div>
                        <ul class="list-unstyled">
                            <li><i class="fas fa-check text-success"></i> Single image visualization with annotations</li>
                            <li><i class="fas fa-check text-success"></i> Batch image grid visualization</li>
                            <li><i class="fas fa-check text-success"></i> Before/After preprocessing comparison</li>
                            <li><i class="fas fa-check text-success"></i> Dataset statistics charts (bar/pie)</li>
                            <li><i class="fas fa-check text-success"></i> Diagnostic label overlay display</li>
                            <li><i class="fas fa-check text-success"></i> Confidence score visualization</li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 4: Dataset Statistics -->
        <div class="card mb-4">
            <div class="card-body p-4">
                <div class="row">
                    <div class="col-md-2 text-center">
                        <i class="fas fa-chart-bar feature-icon"></i>
                    </div>
                    <div class="col-md-10">
                        <h4 class="card-title mb-3">
                            <i class="fas fa-info-circle text-info"></i> 4. Dataset Statistics & Information
                        </h4>
                        <p class="card-text mb-3">
                            Get comprehensive dataset statistics including image counts, distribution, and metadata information.
                        </p>
                        <div class="bg-dark text-light p-3 rounded mb-3">
                            <code class="text-success">info = dataset.get_dataset_info()</code><br>
                            <code class="text-warning"># Returns: {'xray_count': 10, 'ct_count': 10,</code><br>
                            <code class="text-warning">#          'mri_count': 10, 'total_images': 30}</code>
                        </div>
                        <ul class="list-unstyled">
                            <li><i class="fas fa-check text-success"></i> Image count per modality</li>
                            <li><i class="fas fa-check text-success"></i> Total dataset statistics</li>
                            <li><i class="fas fa-check text-success"></i> Visual statistics plots</li>
                            <li><i class="fas fa-check text-success"></i> Bar charts and pie charts</li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 5: Image Types -->
        <div class="row mb-4">
            <div class="col-md-4">
                <div class="card text-center h-100">
                    <div class="card-body p-4">
                        <i class="fas fa-x-ray feature-icon"></i>
                        <h5 class="card-title">X-ray Images</h5>
                        <p class="card-text">Comprehensive collection of X-ray images with diagnostic annotations. Supports chest, abdomen, and extremity X-rays.</p>
                        <span class="badge bg-info">10 Images</span>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="card text-center h-100">
                    <div class="card-body p-4">
                        <i class="fas fa-lungs feature-icon"></i>
                        <h5 class="card-title">CT Scan Images</h5>
                        <p class="card-text">CT scan images with detailed diagnostic labels for analysis. Includes head, chest, and abdomen CT scans.</p>
                        <span class="badge bg-info">10 Images</span>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="card text-center h-100">
                    <div class="card-body p-4">
                        <i class="fas fa-brain feature-icon"></i>
                        <h5 class="card-title">MRI Images</h5>
                        <p class="card-text">MRI images with comprehensive diagnostic information. Brain, spine, and joint MRI scans included.</p>
                        <span class="badge bg-info">10 Images</span>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 6: Additional Features -->
        <div class="row">
            <div class="col-md-6">
                <div class="card h-100">
                    <div class="card-body p-4">
                        <h5 class="card-title">
                            <i class="fas fa-tags text-info"></i> Diagnostic Labels
                        </h5>
                        <p class="card-text">All images include JSON-format diagnostic labels with:</p>
                        <ul>
                            <li>Diagnosis information</li>
                            <li>Confidence scores</li>
                            <li>Patient metadata (anonymized)</li>
                            <li>Annotations and findings</li>
                            <li>Date and modality information</li>
                        </ul>
                        <div class="bg-dark text-light p-2 rounded mt-2">
                            <small><code class="text-success">{"diagnosis": "Normal", "confidence": 0.95, ...}</code></small>
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-md-6">
                <div class="card h-100">
                    <div class="card-body p-4">
                        <h5 class="card-title">
                            <i class="fas fa-file-medical text-info"></i> DICOM Support
                        </h5>
                        <p class="card-text">Full support for DICOM medical imaging format:</p>
                        <ul>
                            <li>Read and parse DICOM files</li>
                            <li>Extract pixel arrays</li>
                            <li>Automatic format detection</li>
                            <li>Compatible with medical imaging standards</li>
                        </ul>
                        <div class="bg-dark text-light p-2 rounded mt-2">
                            <small><code class="text-success"># Requires: pip install pydicom</code></small>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Feature 7: AI Ready -->
        <div class="card mt-4 bg-gradient" style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);">
            <div class="card-body p-4 text-white text-center">
                <i class="fas fa-robot feature-icon text-white"></i>
                <h4 class="card-title">Ready for Medical AI Models</h4>
                <p class="card-text lead">Pre-processed and formatted for immediate use in medical AI model training. 
                Perfect for deep learning, computer vision, and healthcare AI applications.</p>
                <div class="row mt-4">
                    <div class="col-md-4">
                        <i class="fas fa-brain fa-2x mb-2"></i>
                        <p>Deep Learning</p>
                    </div>
                    <div class="col-md-4">
                        <i class="fas fa-search fa-2x mb-2"></i>
                        <p>Computer Vision</p>
                    </div>
                    <div class="col-md-4">
                        <i class="fas fa-stethoscope fa-2x mb-2"></i>
                        <p>Healthcare AI</p>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Image Gallery Section -->
    <section id="gallery" class="container mb-5">
        <h2 class="text-center mb-5 text-white">
            <i class="fas fa-images text-warning"></i> Dataset Image Gallery
        </h2>
        
        <!-- X-ray Images Gallery -->
        <div class="card mb-4">
            <div class="card-header bg-info text-white">
                <h4 class="mb-0"><i class="fas fa-x-ray"></i> X-ray Images (10 images)</h4>
            </div>
            <div class="card-body p-4">
                <div class="row g-3" id="xray-gallery">
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-1.jpg" class="card-img-top" alt="X-ray Image 1" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-1.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-1.png" class="card-img-top" alt="X-ray Image 2" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-1.png</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-10.jpg" class="card-img-top" alt="X-ray Image 3" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-10.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-11.jpg" class="card-img-top" alt="X-ray Image 4" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-11.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-12.jpg" class="card-img-top" alt="X-ray Image 5" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-12.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-13.jpg" class="card-img-top" alt="X-ray Image 6" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-13.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-14.jpg" class="card-img-top" alt="X-ray Image 7" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-14.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-15.jpg" class="card-img-top" alt="X-ray Image 8" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-15.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-17.jpg" class="card-img-top" alt="X-ray Image 9" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-17.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/xray/images/000001-18.jpg" class="card-img-top" alt="X-ray Image 10" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001-18.jpg</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- CT Scan Images Gallery -->
        <div class="card mb-4">
            <div class="card-header bg-success text-white">
                <h4 class="mb-0"><i class="fas fa-lungs"></i> CT Scan Images (10 images)</h4>
            </div>
            <div class="card-body p-4">
                <div class="row g-3">
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000000.jpeg" class="card-img-top" alt="CT Scan 1" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000000.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000001.jpeg" class="card-img-top" alt="CT Scan 2" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000001.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000002.jpeg" class="card-img-top" alt="CT Scan 3" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000002.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000003.jpeg" class="card-img-top" alt="CT Scan 4" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000003.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000004.jpeg" class="card-img-top" alt="CT Scan 5" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000004.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000005.jpeg" class="card-img-top" alt="CT Scan 6" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000005.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000006.jpeg" class="card-img-top" alt="CT Scan 7" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000006.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000007.jpeg" class="card-img-top" alt="CT Scan 8" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000007.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000008.jpeg" class="card-img-top" alt="CT Scan 9" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000008.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/ct_scan/images/000009.jpeg" class="card-img-top" alt="CT Scan 10" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">000009.jpeg</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- MRI Images Gallery -->
        <div class="card mb-4">
            <div class="card-header bg-primary text-white">
                <h4 class="mb-0"><i class="fas fa-brain"></i> MRI Images (10 images)</h4>
            </div>
            <div class="card-body p-4">
                <div class="row g-3">
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/1 no.jpeg" class="card-img-top" alt="MRI 1" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">1 no.jpeg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/10 no.jpg" class="card-img-top" alt="MRI 2" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">10 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/11 no.jpg" class="card-img-top" alt="MRI 3" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">11 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/12 no.jpg" class="card-img-top" alt="MRI 4" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">12 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/13 no.jpg" class="card-img-top" alt="MRI 5" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">13 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/14 no.jpg" class="card-img-top" alt="MRI 6" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">14 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/15 no.jpg" class="card-img-top" alt="MRI 7" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">15 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/17 no.jpg" class="card-img-top" alt="MRI 8" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">17 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/18 no.jpg" class="card-img-top" alt="MRI 9" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">18 no.jpg</small>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3 col-sm-4 col-6">
                        <div class="card h-100 shadow-sm">
                            <img src="data/mri/images/19 no.jpg" class="card-img-top" alt="MRI 10" style="height: 200px; object-fit: contain; background: #000;" onerror="this.style.display='none'">
                            <div class="card-body p-2 text-center">
                                <small class="text-muted">19 no.jpg</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Technologies Section -->
    <section id="technologies" class="container mb-5">
        <div class="card">
            <div class="card-body p-5">
                <h2 class="card-title mb-4 text-center">
                    <i class="fas fa-tools text-info"></i> Technologies Used
                </h2>
                <div class="text-center">
                    <span class="tech-badge">DICOM</span>
                    <span class="tech-badge">PNG</span>
                    <span class="tech-badge">JPG</span>
                    <span class="tech-badge">NumPy</span>
                    <span class="tech-badge">PIL</span>
                    <span class="tech-badge">OpenCV</span>
                </div>
                <div class="mt-4">
                    <h5>Technology Stack:</h5>
                    <ul class="list-group list-group-flush">
                        <li class="list-group-item"><strong>DICOM:</strong> Medical imaging standard format</li>
                        <li class="list-group-item"><strong>PNG/JPG:</strong> Standard image formats for processing</li>
                        <li class="list-group-item"><strong>NumPy:</strong> Numerical computing and array operations</li>
                        <li class="list-group-item"><strong>PIL (Pillow):</strong> Image processing and manipulation</li>
                        <li class="list-group-item"><strong>OpenCV:</strong> Computer vision and image analysis</li>
                    </ul>
                </div>
            </div>
        </div>
    </section>

    <!-- Download Section -->
    <section id="download" class="container mb-5">
        <div class="card bg-info text-white">
            <div class="card-body p-5 text-center">
                <h2 class="card-title mb-4">
                    <i class="fas fa-download"></i> Download Dataset
                </h2>
                <p class="card-text lead mb-4">
                    Get the complete Medical Imaging Dataset with all images, labels, and documentation.
                </p>
                <div class="mb-4">
                    <a href="./medical-imaging.zip" class="btn btn-light btn-lg" download>
                        <i class="fas fa-file-archive"></i> Download Dataset (ZIP) - 2.11 MB
                    </a>
                </div>
                <div class="alert alert-light mt-3 text-dark">
                    <i class="fas fa-info-circle"></i> <strong>ZIP File Location:</strong> 
                    <code class="text-primary">medical-imaging.zip</code> (root directory)<br>
                    <small>Contains: 30 images (10 X-ray, 10 CT scan, 10 MRI) + labels + all scripts + documentation</small>
                </div>
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer class="footer">
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <h5>About RSK World</h5>
                    <p>Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.</p>
                </div>
                <div class="col-md-6">
                    <h5>Contact Information</h5>
                    <p>
                        <i class="fas fa-envelope"></i> Email: <a href="mailto:help@rskworld.in" class="text-white">help@rskworld.in</a><br>
                        <i class="fas fa-phone"></i> Phone: <a href="tel:+919330539277" class="text-white">+91 93305 39277</a><br>
                        <i class="fas fa-globe"></i> Website: <a href="https://rskworld.in" class="text-white" target="_blank">rskworld.in</a>
                    </p>
                </div>
            </div>
            <hr class="bg-white">
            <div class="text-center">
                <p>&copy; 2024 RSK World. All rights reserved. | Content used for educational purposes only.</p>
            </div>
        </div>
    </footer>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

801 lines•43.2 KB
markup
generate_sample_data.py
Raw Download
Find: Go to:
"""
Medical Imaging Dataset - Sample Data Generator
================================================

Project: Medical Imaging Dataset
Website: https://rskworld.in
Contact: help@rskworld.in, support@rskworld.in
Phone: +91 93305 39277
Founder: Molla Samser
Designer & Tester: Rima Khatun

This script generates sample placeholder medical images for demonstration purposes.
"""

import numpy as np
from PIL import Image
import json
from pathlib import Path
import os


def create_sample_xray_image(output_path, image_num=1):
    """Create a sample X-ray placeholder image with varied patterns."""
    width, height = 512, 512
    np.random.seed(image_num * 42)  # Different seed for each image
    
    # Base intensity varies by image
    base_intensity = 80 + (image_num * 20) % 100
    image = np.full((height, width), base_intensity, dtype=np.uint8)
    
    # Different patterns for each image
    if image_num == 1:
        # Chest X-ray pattern - vertical ribs
        for y in range(height):
            for x in range(width):
                # Rib-like structures
                if (x % 60) < 8:
                    image[y, x] = min(255, image[y, x] + 60)
                # Spine in center
                if abs(x - width//2) < 15:
                    image[y, x] = min(255, image[y, x] + 40)
    
    elif image_num == 2:
        # Extremity X-ray - bone structure
        center_x, center_y = width//2, height//2
        for y in range(height):
            for x in range(width):
                dist = abs(x - center_x) + abs(y - center_y)
                if dist < 100:
                    image[y, x] = min(255, image[y, x] + 70)
                # Joint area
                if abs(y - center_y) < 30:
                    image[y, x] = min(255, image[y, x] + 50)
    
    elif image_num == 3:
        # Abdomen X-ray - horizontal structures
        for y in range(height):
            for x in range(width):
                # Horizontal bands
                if (y % 80) < 12:
                    image[y, x] = min(255, image[y, x] + 55)
                # Central structure
                if (x - width//2)**2 + (y - height//2)**2 < 15000:
                    image[y, x] = min(255, image[y, x] + 30)
    
    elif image_num == 4:
        # Skull X-ray - circular pattern
        center_x, center_y = width//2, height//2
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                if 80 < dist < 200:
                    image[y, x] = min(255, image[y, x] + 65)
                if dist < 80:
                    image[y, x] = max(0, image[y, x] - 30)
    
    else:  # image_num == 5
        # Pelvis X-ray - complex structure
        for y in range(height):
            for x in range(width):
                # Hip bones
                if (x - width//3)**2 + (y - height//2)**2 < 8000:
                    image[y, x] = min(255, image[y, x] + 50)
                if (x - 2*width//3)**2 + (y - height//2)**2 < 8000:
                    image[y, x] = min(255, image[y, x] + 50)
                # Spine
                if abs(x - width//2) < 10:
                    image[y, x] = min(255, image[y, x] + 40)
    
    # Add varied noise
    noise_level = 15 + (image_num * 3) % 15
    noise = np.random.normal(0, noise_level, (height, width))
    image = np.clip(image.astype(float) + noise, 0, 255).astype(np.uint8)
    
    # Apply different contrast
    contrast = 1.0 + (image_num * 0.15) % 0.5
    image = np.clip((image - 128) * contrast + 128, 0, 255).astype(np.uint8)
    
    img = Image.fromarray(image, mode='L')
    img.save(output_path)
    print(f"Created X-ray sample {image_num}: {output_path}")


def create_sample_ct_image(output_path, image_num=1):
    """Create a sample CT scan placeholder image with varied cross-sections."""
    width, height = 512, 512
    np.random.seed(image_num * 73)  # Different seed
    
    base_intensity = 100 + (image_num * 15) % 80
    image = np.full((height, width), base_intensity, dtype=np.uint8)
    center_x, center_y = width // 2, height // 2
    
    if image_num == 1:
        # Head CT - brain cross-section
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                if dist < 180:
                    # Skull
                    if dist > 160:
                        image[y, x] = min(255, image[y, x] + 80)
                    # Brain matter
                    elif dist < 140:
                        image[y, x] = max(0, image[y, x] - 40)
                    # Gray matter
                    else:
                        image[y, x] = min(255, image[y, x] + 20)
    
    elif image_num == 2:
        # Chest CT - lung cross-section
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Ribs
                if 150 < dist < 200:
                    image[y, x] = min(255, image[y, x] + 70)
                # Lungs (darker)
                elif dist < 140:
                    if abs(x - center_x) > 30:  # Left and right lungs
                        image[y, x] = max(0, image[y, x] - 50)
                # Heart area
                if (x - center_x)**2 + (y - center_y)**2 < 3000:
                    image[y, x] = min(255, image[y, x] + 30)
    
    elif image_num == 3:
        # Abdomen CT - organ cross-section
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Body outline
                if dist > 170:
                    image[y, x] = min(255, image[y, x] + 60)
                # Organs (varied)
                elif dist < 150:
                    # Liver (right side)
                    if x > center_x and abs(y - center_y) < 80:
                        image[y, x] = min(255, image[y, x] + 25)
                    # Stomach (left side)
                    elif x < center_x and abs(y - center_y) < 60:
                        image[y, x] = max(0, image[y, x] - 20)
    
    elif image_num == 4:
        # Pelvis CT - bone structure
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Pelvic bones
                if 120 < dist < 190:
                    image[y, x] = min(255, image[y, x] + 75)
                # Soft tissue
                elif dist < 120:
                    image[y, x] = max(0, image[y, x] - 30)
                # Spine
                if abs(x - center_x) < 8 and y > center_y - 50:
                    image[y, x] = min(255, image[y, x] + 60)
    
    else:  # image_num == 5
        # Spine CT - vertebral cross-section
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Vertebra (center)
                if dist < 60:
                    image[y, x] = min(255, image[y, x] + 80)
                # Spinal canal (darker center)
                if dist < 25:
                    image[y, x] = max(0, image[y, x] - 40)
                # Surrounding tissue
                elif dist < 150:
                    image[y, x] = max(0, image[y, x] - 15)
    
    # Add texture
    noise_level = 12 + (image_num * 2) % 10
    noise = np.random.normal(0, noise_level, (height, width))
    image = np.clip(image.astype(float) + noise, 0, 255).astype(np.uint8)
    
    # Vary brightness
    brightness_shift = (image_num * 10) % 30 - 15
    image = np.clip(image.astype(float) + brightness_shift, 0, 255).astype(np.uint8)
    
    img = Image.fromarray(image, mode='L')
    img.save(output_path)
    print(f"Created CT scan sample {image_num}: {output_path}")


def create_sample_mri_image(output_path, image_num=1):
    """Create a sample MRI placeholder image with varied brain structures."""
    width, height = 512, 512
    np.random.seed(image_num * 97)  # Different seed
    
    base_intensity = 60 + (image_num * 12) % 60
    image = np.full((height, width), base_intensity, dtype=np.uint8)
    center_x, center_y = width // 2, height // 2
    
    if image_num == 1:
        # Brain MRI - T1 weighted (sagittal)
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Skull
                if dist > 190:
                    image[y, x] = min(255, image[y, x] + 90)
                # White matter (bright)
                elif 100 < dist < 160:
                    image[y, x] = min(255, image[y, x] + 50)
                # Gray matter (medium)
                elif 60 < dist < 100:
                    image[y, x] = min(255, image[y, x] + 20)
                # CSF (dark)
                elif dist < 60:
                    image[y, x] = max(0, image[y, x] - 30)
    
    elif image_num == 2:
        # Brain MRI - T2 weighted (axial)
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Skull
                if dist > 185:
                    image[y, x] = min(255, image[y, x] + 85)
                # CSF (bright in T2)
                elif dist < 70:
                    image[y, x] = min(255, image[y, x] + 60)
                # Gray matter
                elif 70 < dist < 120:
                    image[y, x] = min(255, image[y, x] + 30)
                # White matter (darker)
                elif 120 < dist < 160:
                    image[y, x] = max(0, image[y, x] - 20)
    
    elif image_num == 3:
        # Brain MRI - coronal view
        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x - center_x)**2 + (y - center_y)**2)
                # Skull outline
                if 170 < dist < 195:
                    image[y, x] = min(255, image[y, x] + 80)
                # Brain tissue (varied)
                elif dist < 170:
                    # Left hemisphere
                    if x < center_x:
                        image[y, x] = min(255, image[y, x] + 25)
                    # Right hemisphere
                    else:
                        image[y, x] = min(255, image[y, x] + 35)
                    # Ventricles (center, darker)
                    if dist < 50:
                        image[y, x] = max(0, image[y, x] - 40)
    
    elif image_num == 4:
        # Spine MRI - sagittal
        for y in range(height):
            for x in range(width):
                # Vertebrae (bright)
                if abs(x - center_x) < 25:
                    if (y % 80) < 50:
                        image[y, x] = min(255, image[y, x] + 70)
                # Spinal cord (darker)
                if abs(x - center_x) < 8:
                    image[y, x] = max(0, image[y, x] - 30)
                # Discs (medium)
                if abs(x - center_x) < 30:
                    if (y % 80) > 50:
                        image[y, x] = min(255, image[y, x] + 40)
    
    else:  # image_num == 5
        # Knee MRI - sagittal
        for y in range(height):
            for x in range(width):
                # Femur (top, bright)
                if y < height//3:
                    if abs(x - center_x) < 40:
                        image[y, x] = min(255, image[y, x] + 75)
                # Tibia (bottom, bright)
                elif y > 2*height//3:
                    if abs(x - center_x) < 40:
                        image[y, x] = min(255, image[y, x] + 75)
                # Cartilage (middle, medium)
                elif height//3 < y < 2*height//3:
                    if abs(x - center_x) < 50:
                        image[y, x] = min(255, image[y, x] + 45)
                # Soft tissue (darker)
                else:
                    image[y, x] = max(0, image[y, x] - 20)
    
    # Add fine texture
    noise_level = 8 + (image_num * 1.5) % 8
    noise = np.random.normal(0, noise_level, (height, width))
    image = np.clip(image.astype(float) + noise, 0, 255).astype(np.uint8)
    
    # Vary contrast
    contrast = 0.9 + (image_num * 0.1) % 0.4
    image = np.clip((image - 128) * contrast + 128, 0, 255).astype(np.uint8)
    
    img = Image.fromarray(image, mode='L')
    img.save(output_path)
    print(f"Created MRI sample {image_num}: {output_path}")


def create_label_file(label_path, image_type, image_num, diagnosis="Normal"):
    """Create a sample label JSON file."""
    diagnoses = ["Normal", "Abnormal", "Pneumonia", "Fracture", "Tumor"]
    body_parts = {
        'xray': ['Chest', 'Abdomen', 'Extremity'],
        'ct_scan': ['Head', 'Chest', 'Abdomen', 'Pelvis'],
        'mri': ['Brain', 'Spine', 'Knee', 'Shoulder']
    }
    
    label_data = {
        "diagnosis": diagnosis if diagnosis in diagnoses else "Normal",
        "confidence": round(np.random.uniform(0.85, 0.98), 2),
        "date": "2024-01-15",
        "modality": image_type.replace('_', ' ').title(),
        "body_part": np.random.choice(body_parts.get(image_type, ['Unknown'])),
        "annotations": {
            "findings": ["Sample medical imaging data for demonstration"],
            "recommendations": ["This is placeholder data for educational purposes"]
        },
        "metadata": {
            "patient_id": "ANONYMIZED",
            "age": "N/A",
            "gender": "N/A",
            "technique": "Digital imaging",
            "sample_number": image_num
        }
    }
    
    with open(label_path, 'w') as f:
        json.dump(label_data, f, indent=4)
    print(f"Created label file: {label_path}")


def generate_sample_data():
    """Generate sample data for all image types."""
    print("=" * 60)
    print("Generating Sample Medical Imaging Data")
    print("=" * 60)
    print()
    
    # Create directories if they don't exist
    directories = [
        'data/xray/images',
        'data/xray/labels',
        'data/ct_scan/images',
        'data/ct_scan/labels',
        'data/mri/images',
        'data/mri/labels',
    ]
    
    for directory in directories:
        Path(directory).mkdir(parents=True, exist_ok=True)
    
    # Generate X-ray samples
    print("Generating X-ray samples...")
    for i in range(1, 6):  # 5 X-ray images
        image_path = f'data/xray/images/xray_{i:03d}.png'
        label_path = f'data/xray/labels/xray_{i:03d}.json'
        create_sample_xray_image(image_path, i)
        create_label_file(label_path, 'xray', i)
    
    print()
    
    # Generate CT scan samples
    print("Generating CT scan samples...")
    for i in range(1, 6):  # 5 CT scan images
        image_path = f'data/ct_scan/images/ct_scan_{i:03d}.png'
        label_path = f'data/ct_scan/labels/ct_scan_{i:03d}.json'
        create_sample_ct_image(image_path, i)
        create_label_file(label_path, 'ct_scan', i)
    
    print()
    
    # Generate MRI samples
    print("Generating MRI samples...")
    for i in range(1, 6):  # 5 MRI images
        image_path = f'data/mri/images/mri_{i:03d}.png'
        label_path = f'data/mri/labels/mri_{i:03d}.json'
        create_sample_mri_image(image_path, i)
        create_label_file(label_path, 'mri', i)
    
    print()
    print("=" * 60)
    print("Sample data generation completed!")
    print("=" * 60)
    print()
    print("Generated:")
    print("  - 5 X-ray images with labels")
    print("  - 5 CT scan images with labels")
    print("  - 5 MRI images with labels")
    print("  Total: 15 images with corresponding labels")
    print()
    print("Note: These are placeholder images for demonstration purposes.")
    print("For actual medical use, replace with real medical imaging data.")


if __name__ == '__main__':
    generate_sample_data()

420 lines•15.9 KB
python
🚀 Support RSK World

Subscribe to our YouTube channel for latest tutorials & updates!



Click subscribe & support our work ❤️

About RSK World

Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.

Founder: Molla Samser
Designer & Tester: Rima Khatun

Development

  • Game Development
  • Web Development
  • Mobile Development
  • AI Development
  • Development Tools

Legal

  • Terms & Conditions
  • Privacy Policy
  • Disclaimer

Contact Info

Nutanhat, Mongolkote
Purba Burdwan, West Bengal
India, 713147

+91 93305 39277

hello@rskworld.in
support@rskworld.in

© 2026 RSK World. All rights reserved.

Content used for educational purposes only. View Disclaimer