1. Image-Guided Precision Manipulation of Cells and Nanoparticles in Microfluidics
Advanced
Toolbox: Image Processing, Computer Vision, Control System
Deliverables: Code .m, Model .slx, Report
🎯 Problem & Objective: Manipulate living single cells and nanoparticles inside microfluidic channels using Electrokinetic (EK) tweezers under real-time vision-based feedback control. Track sub-micron object positions, guide microparticles along complex 3D trajectories, and quantify cellular adhesion forces.
⚙️ Key MATLAB Functions:
vision.PointTrackerimfindcirclesregionpropskalmanpidtune
📊 Expected Output & Metrics: Sub-micron positioning accuracy (error < 45 nm), real-time particle coordinate tracking plots, PID voltage actuation profiles, and cellular attachment force curves (pN).
vidReader = VideoReader('microfluidic_cell_stream.avi');
kalman = vision.KalmanFilter('ConstantVelocity', 'StateTransitionModel', [1 1; 0 1]);
while hasFrame(vidReader)
frame = readFrame(vidReader);
gray = im2gray(frame);
[centers, radii, metric] = imfindcircles(gray, [15 35], 'Sensitivity', 0.88);
if ~isempty(centers)
targetPos = [250, 200];
currentPos = centers(1, :);
posError = targetPos - currentPos;
end
end
Est. Duration: 3–5 Weeks
Request Custom Project →
2. White Blood Cell (WBC) Nucleus & Cytoplasm Segmentation in Microscopic Blood Images
Intermediate
Toolbox: Image Processing
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Automate hematological blood smear evaluation by decomposing White Blood Cells into two dominant morphological components: the nucleus and cytoplasm. Overcome staining variations and overlapping red blood cells to assist in early leukemia diagnosis.
⚙️ Key MATLAB Functions:
rgb2labimbinarizeimopenbwconncompregionprops
📊 Expected Output & Metrics: Isolated nucleus and cytoplasm masks, Nucleus-to-Cytoplasm (N:C) area ratio, nucleus segmentation accuracy (>92%), and cytoplasm segmentation accuracy (>78%).
img = imread('blood_smear_wbc.jpg');
lab = rgb2lab(img);
a_channel = lab(:,:,2);
level_nuc = graythresh(a_channel);
nuc_mask = imbinarize(a_channel, level_nuc);
nuc_mask = bwareaopen(nuc_mask, 100);
wbc_mask = imbinarize(rgb2gray(img), 0.7);
cytoplasm_mask = xor(wbc_mask, nuc_mask);
nuc_area = sum(nuc_mask(:));
cyto_area = sum(cytoplasm_mask(:));
nc_ratio = nuc_area / (cyto_area + eps);
Est. Duration: 1–2 Weeks
Request Custom Project →
3. Microcontroller-Based Wireless Biosensor Readout for Patient Vital Signs
Intermediate
Toolbox: Instrument Control, Signal Processing, MATLAB Support for Arduino
Deliverables: Code .m, GUI, Hardware Setup
🎯 Problem & Objective: Develop a modular Wireless Patient Sensor Platform (WSP) interfacing microcontroller sensor nodes (temperature, photoplethysmography / pulse) with a MATLAB telemetry dashboard for remote real-time clinical monitoring.
⚙️ Key MATLAB Functions:
serialportreadfindpeaksanimatedlineuialert
📊 Expected Output & Metrics: Real-time rolling graphical telemetry plots, heart rate calculation in Beats Per Minute (BPM ± 1.5), body temperature tracking (°C ± 0.1°C), and automated tachycardia/fever alarm flags.
s = serialport("COM4", 115200);
configureTerminator(s, "CR/LF");
flush(s);
hFig = figure('Name', 'Wireless Vital Signs Monitor');
hLinePulse = animatedline('Color', 'r', 'LineWidth', 1.5);
xlabel('Time (Samples)'); ylabel('PPG Amplitude'); grid on;
for k = 1:500
dataStr = readline(s);
sensorVals = str2double(split(dataStr, ","));
addpoints(hLinePulse, k, sensorVals(2));
drawnow limitrate;
end
Est. Duration: 1–2 Weeks
Request Custom Project →
4. Embedded Telemedicine System & Internet-Connected Pulse Oximetry
Intermediate
Toolbox: Signal Processing, Instrument Control, IoT Analytics
Deliverables: Code .m, ThingSpeak Model, Report
🎯 Problem & Objective: Implement an IoT-enabled nocturnal sleep monitoring system that acquires dual-wavelength photoplethysmography (Red and Infrared) signals, computes blood oxygen saturation (%SpO2) and pulse rate, and detects desaturation events characteristic of Obstructive Sleep Apnea (OSA).
⚙️ Key MATLAB Functions:
bandpassmovmeanfindpeaksthingSpeakWritetrapz
📊 Expected Output & Metrics: Continuous %SpO2 trend curves, Oxygen Desaturation Index (ODI), pulse rate variability (PRV), and automated cloud event logging.
fs = 100;
ppg_red_filt = bandpass(raw_red, [0.5 5], fs);
ppg_ir_filt = bandpass(raw_ir, [0.5 5], fs);
ac_red = max(ppg_red_filt) - min(ppg_red_filt);
dc_red = mean(raw_red);
ac_ir = max(ppg_ir_filt) - min(ppg_ir_filt);
dc_ir = mean(raw_ir);
R = (ac_red / dc_red) / (ac_ir / dc_ir);
SpO2 = 110 - 25 * R;
fprintf('Calculated Arterial Oxygen Saturation: %.2f%%\n', SpO2);
Est. Duration: 1–2 Weeks
Request Custom Project →
5. Automated ABO-Rh Blood Typing & Agglutination Detection System
Intermediate
Toolbox: Image Processing, Computer Vision
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Automate donor blood phenotyping (A, B, AB, O, Rh+ / Rh-) by analyzing microplate reagent well images. Apply digital image processing and texture analysis to quantify hemagglutination (clumping) with zero human interpretation error.
⚙️ Key MATLAB Functions:
graycomatrixgraycopropsentropyimfindcirclesstd2
📊 Expected Output & Metrics: Well isolation segmentation, GLCM homogeneity/contrast metrics, agglutination status (Clumped vs. Homogeneous), and blood group diagnostic classification (100% concordance).
wellImg = imread('well_anti_a.png');
grayWell = rgb2gray(wellImg);
glcm = graycomatrix(grayWell, 'Offset', [0 1; -1 1; -1 0; -1 -1]);
stats = graycoprops(glcm, {'Contrast', 'Homogeneity', 'Energy'});
isAgglutinated = mean(stats.Contrast) > 1.8 && mean(stats.Homogeneity) < 0.65;
if isAgglutinated
disp('Anti-A Reaction: Positive (Agglutination Detected)');
else
disp('Anti-A Reaction: Negative');
end
Est. Duration: 1–2 Weeks
Request Custom Project →
6. B-Mode Ultrasound Imaging: Beamforming & Speckle Reduction Filtering
Advanced
Toolbox: Medical Imaging, Signal Processing, Phased Array
Deliverables: Code .m, Simulation Model, Report
🎯 Problem & Objective: Reconstruct high-resolution clinical B-mode ultrasound images from multi-channel raw Radio Frequency (RF) transducer data using Delay-and-Sum (DAS) beamforming, envelope detection, log compression, and anisotropic speckle reduction.
⚙️ Key MATLAB Functions:
hilbertphased.ReplicatedSubarraymedfilt2imdiffusefiltimagesc
📊 Expected Output & Metrics: Reconstructed 2D B-mode grayscale echograms, speckle suppression index (SSI < 0.5), Contrast-to-Noise Ratio (CNR > 3.8 dB), and lateral resolution PSF beam profiles.
rf_env = abs(hilbert(rf_beamformed_data));
bmode_img = 20 * log10(rf_env / max(rf_env(:)));
bmode_img(bmode_img < -60) = -60;
bmode_clean = imdiffusefilt(mat2gray(bmode_img), 'NumberOfIterations', 8);
figure; imagesc(bmode_clean); colormap(gray); axis image off;
title('Speckle-Reduced B-Mode Ultrasound Scan');
Est. Duration: 2–4 Weeks
Request Custom Project →
7. Leukemia Detection & Cancer Classification in Blood Smears Using Deep Learning
Advanced
Toolbox: Deep Learning, Image Processing, Statistics
Deliverables: Code .m, Trained Net, Report
🎯 Problem & Objective: Classify acute lymphoblastic leukemia (ALL) versus normal lymphocytes from microscopic thin blood film images (ALL-IDB dataset) by extracting texture, morphological, and geometric features coupled with fine-tuned Deep Convolutional Networks (ResNet-18 / MobileNetV2).
⚙️ Key MATLAB Functions:
imageDatastoretrainNetworkresnet18augmentedImageDatastoreconfusionchart
📊 Expected Output & Metrics: Multi-class confusion matrix, Classification Accuracy (>96.5%), Sensitivity (98%), Specificity (95%), and Grad-CAM blast cell activation heatmaps.
imds = imageDatastore('ALL_IDB_Dataset', 'IncludeSubfolders', true, 'LabelSource', 'foldernames');
[imdsTrain, imdsVal] = splitEachLabel(imds, 0.8, 'randomized');
net = resnet18;
lgraph = layerGraph(net);
newFc = fullyConnectedLayer(2, 'Name', 'fc_leukemia', 'WeightLearnRateFactor', 10);
newClass = classificationLayer('Name', 'output');
lgraph = replaceLayer(lgraph, 'fc1000', newFc);
lgraph = replaceLayer(lgraph, 'ClassificationLayer_predictions', newClass);
options = trainingOptions('adam', 'InitialLearnRate', 1e-4, 'MaxEpochs', 15, 'MiniBatchSize', 32, 'ValidationData', imdsVal, 'Plots', 'training-progress');
trainedNet = trainNetwork(imdsTrain, lgraph, options);
Est. Duration: 2–4 Weeks
Request Custom Project →
8. Brain MRI Tumor Segmentation Using Active Contours & Chan-Vese Algorithm
Intermediate
Toolbox: Medical Imaging, Image Processing
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Automate skull stripping and glioblastoma tumor delineation in T2-FLAIR brain MRI slices using adaptive histogram equalization, morphological skull removal, and Chan-Vese geometric active contours.
⚙️ Key MATLAB Functions:
dicomreadadapthisteqactivecontourdicejaccard
📊 Expected Output & Metrics: Segmented tumor boundary contour overlays, Dice Similarity Coefficient (>0.92), Jaccard Index (>0.85), and quantified tumor volume (cm³).
I = dicomread('brain_mri_flair.dcm');
I_norm = mat2gray(I);
I_enh = adapthisteq(I_norm, 'ClipLimit', 0.02);
mask_skull = imbinarize(I_enh, 0.1);
mask_skull = imfill(bwareafilt(mask_skull, 1), 'holes');
I_brain = I_enh .* mask_skull;
mask_init = false(size(I_brain));
mask_init(120:180, 200:260) = true;
seg_tumor = activecontour(I_brain, mask_init, 300, 'Chan-Vese');
figure; imshow(I_enh); hold on;
visboundaries(seg_tumor, 'Color', 'r', 'LineWidth', 2);
title('Delineated Brain Tumor Active Contour');
Est. Duration: 1–2 Weeks
Request Custom Project →
9. Diabetic Retinopathy: Retinal Blood Vessel Segmentation via Gabor Wavelets
Intermediate
Toolbox: Image Processing, Wavelet Toolbox
Deliverables: Code .m, Report
🎯 Problem & Objective: Extract fine tortuous retinal microvasculature from fundus photography (DRIVE / STARE datasets) to detect early vascular changes, microaneurysms, and hemorrhages caused by diabetic retinopathy.
⚙️ Key MATLAB Functions:
imgaborfiltimtophatbwareaopenrocperfcurve
📊 Expected Output & Metrics: Binary vessel tree segmentation map, Receiver Operating Characteristic (ROC-AUC > 0.95), Sensitivity (>78%), and Specificity (>97%).
fundus = imread('retina_drive_01.tif');
green_ch = fundus(:,:,2);
green_inv = imcomplement(green_ch);
wavelengths = [4 8];
orientations = 0:15:165;
[mag, phase] = imgaborfilt(green_inv, wavelengths, orientations);
vessel_response = max(mag, [], 3);
bw_vessels = imbinarize(vessel_response, 'adaptive', 'Sensitivity', 0.55);
bw_clean = bwareaopen(bw_vessels, 30);
Est. Duration: 1–2 Weeks
Request Custom Project →
10. COVID-19 & Pneumonia Detection in Chest X-Rays Using Transfer Learning
Advanced
Toolbox: Deep Learning, Computer Vision
Deliverables: Code .m, Trained Net, Grad-CAM GUI
🎯 Problem & Objective: Build an automated triage system using deep convolutional networks (DenseNet-201 / ResNet-50) to classify posterior-anterior chest radiographs into Normal, Bacterial Pneumonia, Viral Pneumonia, and COVID-19 with explainable Grad-CAM heatmaps.
⚙️ Key MATLAB Functions:
densenet201gradCAMtrainNetworkevaluateImageClassificationconfusionchart
📊 Expected Output & Metrics: 4-Class diagnostic accuracy (>95%), Area Under the Curve (AUC > 0.98), and localized Grad-CAM pulmonary consolidation overlay maps.
net = densenet201;
inputSize = net.Layers(1).InputSize;
testImg = imread('covid_chest_xray.png');
imgResized = imresize(testImg, inputSize(1:2));
[label, scores] = classify(trainedCovidNet, imgResized);
camMap = gradCAM(trainedCovidNet, imgResized, label);
figure; imshow(imgResized); hold on;
imagesc(camMap, 'AlphaData', 0.45); colormap jet;
title(sprintf('Prediction: %s (Confidence: %.1f%%)', string(label), max(scores)*100));
Est. Duration: 2–3 Weeks
Request Custom Project →
11. Skin Lesion Melanoma Classification in Dermoscopy Images with ABCD Rule
Intermediate
Toolbox: Image Processing, Statistics and Machine Learning
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Differentiate malignant melanoma from benign nevi in ISIC dermoscopy images using hair removal filtering (DullRazor), Otsu lesion boundary segmentation, and statistical ABCD feature extraction (Asymmetry index, Border irregularity, Color variance, Diameter).
⚙️ Key MATLAB Functions:
imclosebwperimfitcsvmregionpropsentropy
📊 Expected Output & Metrics: Hair-free filtered image, segmented lesion contour, total dermatoscopic score (TDS), and SVM classification accuracy (>91%).
lesion = imread('dermoscopy_isic_02.jpg');
se = strel('disk', 6);
hair_mask = imtophat(rgb2gray(lesion), se) > 0.08;
lesion_clean = inpaintCoherent(lesion, hair_mask);
bw = ~imbinarize(lesion_clean(:,:,3));
props = regionprops(bw, 'Area', 'Perimeter', 'Eccentricity', 'MajorAxisLength');
circularity = (4 * pi * props.Area) / (props.Perimeter^2);
TDS = 1.3*props.Eccentricity + 0.1*(1/circularity) + 0.5*std2(lesion_clean(:,:,1));
Est. Duration: 1–2 Weeks
Request Custom Project →
12. 3D CT Scan Volume Reconstruction & Isosurface Organ Rendering
Advanced
Toolbox: Medical Imaging, Image Processing
Deliverables: Code .m, 3D Rendering Script, Report
🎯 Problem & Objective: Parse a series of axial DICOM CT slices into a 3D volumetric array, calibrate raw intensity to calibrated Hounsfield Units (HU), and generate interactive 3D isosurface models of bone and soft tissue organs using Marching Cubes rendering.
⚙️ Key MATLAB Functions:
dicomreadVolumeisosurfaceisocapspatchisonormals
📊 Expected Output & Metrics: Interactive 3D bone/skeletal render, soft-tissue volume ray-casting, Hounsfield histogram profiles, and volume rendering frame rate (>30 FPS).
[V, spatial] = dicomreadVolume('CT_Chest_Series_Dir');
V = squeeze(V);
boneThreshold = 300;
fv = isosurface(V, boneThreshold);
figure('Color', 'k');
p = patch(fv, 'FaceColor', [0.9 0.85 0.75], 'EdgeColor', 'none');
isonormals(V, p);
daspect(spatial.PixelSpacings);
view(3); axis tight; camlight; lighting phong;
title('3D Reconstructed Skeletal CT Mesh', 'Color', 'w');
Est. Duration: 2–3 Weeks
Request Custom Project →
13. Mammographic Mass & Microcalcification Detection for Breast Cancer Screening
Advanced
Toolbox: Image Processing, Wavelet Toolbox, Computer Vision
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Automatically detect subtle malignant masses and clustered microcalcifications in digital mammograms (MIAS / DDSM databases) following pectoral muscle suppression and high-frequency 2D wavelet decomposition.
⚙️ Key MATLAB Functions:
dwt2imtophatbwpropfiltregionpropsimregionalmax
📊 Expected Output & Metrics: Pectoral muscle suppressed mammogram, microcalcification cluster bounding boxes, True Positive Rate (TPR > 94%), and False Positives per Image (FPI < 0.8).
mammo = imread('mammogram_mias_03.pgm');
[LL, LH, HL, HH] = dwt2(double(mammo), 'bior3.5');
high_detail = LH + HL + HH;
microcalc_cand = imtophat(mat2gray(high_detail), strel('disk', 3));
bw_spots = microcalc_cand > 0.35;
clusters = bwpropfilt(bw_spots, 'Area', [3 50]);
figure; imshow(mammo, []); hold on;
visboundaries(imresize(clusters, 2), 'Color', 'y', 'LineWidth', 1.5);
title('Detected Microcalcification Clusters');
Est. Duration: 2–3 Weeks
Request Custom Project →
14. Automated Cell Nuclei Counting & Morphology Analysis Using Watershed
Beginner
Toolbox: Image Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Separate and enumerate touching/overlapping biological cell nuclei in H&E stained histological tissue images using the Euclidean distance transform and marker-controlled watershed algorithm.
⚙️ Key MATLAB Functions:
bwdistwatershedimextendedminimimposeminregionprops
📊 Expected Output & Metrics: Split individual cell masks, total automated cell count, mean nuclei diameter, and counting error (< 2.5% vs manual gold standard).
I = rgb2gray(imread('histology_cells.png'));
bw = imbinarize(I, 'adaptive');
bw_filled = imfill(bw, 'holes');
D = -bwdist(~bw_filled);
mask = imextendedmin(D, 2);
D_mod = imimposemin(D, mask);
L = watershed(D_mod);
bw_split = bw_filled;
bw_split(L == 0) = 0;
stats = regionprops(bw_split, 'Centroid', 'Area');
fprintf('Total Segmented Cells Counted: %d\n', length(stats));
Est. Duration: 4–6 Hours
Request Custom Project →
15. Cardiac MRI Cine Left Ventricle Segmentation & Ejection Fraction Estimation
Advanced
Toolbox: Medical Imaging, Deep Learning, Image Processing
Deliverables: Code .m, Trained U-Net, Report
🎯 Problem & Objective: Segment the left ventricular endocardial boundary across multi-phase short-axis Cine cardiac MRI datasets (ACDC challenge), calculate End-Diastolic Volume (EDV) and End-Systolic Volume (ESV), and evaluate ventricular Ejection Fraction (EF%).
⚙️ Key MATLAB Functions:
unetLayerssemanticsegpolyareatrapzdice
📊 Expected Output & Metrics: End-diastolic / end-systolic volume-time curve, Left Ventricular Ejection Fraction (LVEF %), and Dice segmentation score (>0.93).
pxEndo = semanticseg(cineSliceMatrix, trainedCardiacUNet);
lv_mask = (pxEndo == 'LeftVentricle');
sliceThickness_mm = 8.0;
EDV = sum(lv_mask(:,:,:,phase_ED), 'all') * pixelArea * sliceThickness_mm * 1e-3;
ESV = sum(lv_mask(:,:,:,phase_ES), 'all') * pixelArea * sliceThickness_mm * 1e-3;
EF = ((EDV - ESV) / EDV) * 100;
fprintf('Cardiac Metrics -> EDV: %.1f mL | ESV: %.1f mL | EF: %.1f%%\n', EDV, ESV, EF);
Est. Duration: 3–4 Weeks
Request Custom Project →
16. Multi-Modal Medical Image Fusion (PET-MRI / CT-MRI) Using Wavelets
Intermediate
Toolbox: Image Processing, Wavelet Toolbox
Deliverables: Code .m, Report
🎯 Problem & Objective: Combine structural anatomical detail from MRI/CT scans with functional metabolic information from PET/SPECT scans into a single composite diagnostic image using Discrete Wavelet Transform (DWT) fusion rules.
⚙️ Key MATLAB Functions:
wfusmatdwt2idwt2ssimimregister
📊 Expected Output & Metrics: Fused hybrid PET-MRI image, Mutual Information (MI > 3.5), Structural Similarity Index (SSIM > 0.91), and Spatial Frequency (SF) enhancement.
mri = im2double(imread('mri_structural.png'));
pet = im2double(imread('pet_functional.png'));
wname = 'sym4';
fused_img = wfusmat(mri, rgb2gray(pet), wname, 'max', 'mean');
figure;
subplot(1,3,1); imshow(mri); title('Anatomical MRI');
subplot(1,3,2); imshow(pet); title('Functional PET');
subplot(1,3,3); imshow(fused_img); title('Wavelet Fused Composite');
Est. Duration: 1–2 Weeks
Request Custom Project →
17. Bone Fracture Detection & Angle Measurement in Orthopedic Radiographs
Beginner
Toolbox: Image Processing
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Detect structural discontinuity and calculate displacement angles in long bone X-rays (radius, femur, tibia) using anisotropic Canny edge detection and the Hough Line Transform.
⚙️ Key MATLAB Functions:
edgehoughhoughpeakshoughlinesimadjust
📊 Expected Output & Metrics: Fracture line boundary highlighting, fracture gap displacement width (mm), bone angulation degree (°), and detection sensitivity (>90%).
xray = imread('femur_fracture.png');
xray_adj = imadjust(rgb2gray(xray));
bw_edges = edge(xray_adj, 'canny', [0.08 0.22]);
[H, theta, rho] = hough(bw_edges);
peaks = houghpeaks(H, 5, 'threshold', ceil(0.3*max(H(:))));
lines = houghlines(bw_edges, theta, rho, peaks, 'FillGap', 10, 'MinLength', 25);
figure; imshow(xray); hold on;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1), xy(:,2), 'LineWidth', 2, 'Color', 'green');
end
title('Detected Bone Fracture Lines & Cortical Discontinuity');
Est. Duration: 4–6 Hours
Request Custom Project →
18. Gastrointestinal Polyp Detection in Wireless Capsule Endoscopy (WCE)
Advanced
Toolbox: Computer Vision, Deep Learning
Deliverables: Code .m, Trained YOLO Model, Report
🎯 Problem & Objective: Automate screening of 50,000+ video frames per patient in Wireless Capsule Endoscopy (Kvasir-SEG / CVC-ClinicDB) by training a YOLOv4 / Faster R-CNN object detector to pinpoint bleeding lesions and adenomatous polyps in real time.
⚙️ Key MATLAB Functions:
yolov4ObjectDetectortrainYOLOv4ObjectDetectorinsertObjectAnnotationevaluateDetectionMissRate
📊 Expected Output & Metrics: Real-time bounding box annotations on endoscopic video streams, mean Average Precision (mAP@0.5 > 0.89), and frame throughput (>45 FPS).
detector = load('trained_wce_polyp_yolov4.mat').detector;
frame = imread('capsule_endoscopy_frame104.jpg');
[bboxes, scores, labels] = detect(detector, frame, 'Threshold', 0.6);
if ~isempty(bboxes)
annotatedFrame = insertObjectAnnotation(frame, 'rectangle', bboxes, cellstr(labels));
figure; imshow(annotatedFrame); title('Polyp Detected (High Confidence)');
end
Est. Duration: 2–3 Weeks
Request Custom Project →
19. CT Image Denoising & Metal Artifact Reduction (MAR) Using Non-Local Means
Intermediate
Toolbox: Medical Imaging, Image Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Suppress severe streak artifacts and photon starvation caused by metallic implants (dental fillings, hip prostheses) in CT sinograms using normalized metal projection inpainting and Non-Local Means (NLM) filtering.
⚙️ Key MATLAB Functions:
radoniradonimnlmfiltpsnrssim
📊 Expected Output & Metrics: Metal-streak corrected CT reconstructions, PSNR improvement (>8.2 dB), SSIM enhancement (>0.88), and preserved anatomical margins.
ct_raw = dicomread('ct_hip_prosthesis.dcm');
metal_mask = ct_raw > 2500;
theta = 0:179;
sino = radon(double(ct_raw), theta);
metal_sino = radon(double(metal_mask), theta);
sino_corrected = inpaintCoherent(sino, metal_sino > 0);
ct_recon = iradon(sino_corrected, theta);
ct_clean = imnlmfilt(mat2gray(ct_recon), 'DegreeOfSmoothing', 0.03);
Est. Duration: 1–2 Weeks
Request Custom Project →
20. Lung Nodule Candidate Detection in Low-Dose CT (LDCT) Scans
Advanced
Toolbox: Medical Imaging, Image Processing, Statistics
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Detect pulmonary solid and ground-glass nodule candidates in volumetric chest CT scans (LIDC-IDRI database) using lung parenchyma segmentation, 3D Hessian eigenvalues (spherical shape index), and random forest false-positive reduction.
⚙️ Key MATLAB Functions:
fibermetricregionprops3TreeBaggerbwconncompactivecontour
📊 Expected Output & Metrics: 3D lung mask, nodule candidate coordinates and sphericity index, Sensitivity (>93%), and Low False Positives (FPs < 2.5 per scan).
V_ct = dicomreadVolume('LIDC_CT_Series');
V_lung = (V_ct > -950) & (V_ct < -400);
V_lung = imfill(bwareaopen(V_lung, 5000), 'holes');
cc = bwconncomp(V_lung);
stats3D = regionprops3(cc, 'Volume', 'EquivDiameter', 'PrincipalAxisLength');
isNodule = stats3D.EquivDiameter >= 3.0 & stats3D.EquivDiameter <= 30.0;
noduleLocations = stats3D.Centroid(isNodule, :);
Est. Duration: 3–4 Weeks
Request Custom Project →
21. Corneal Topography & Keratoconus Pattern Analysis via Zernike Polynomials
Advanced
Toolbox: Image Processing, Optimization
Deliverables: Code .m, GUI, Report
🎯 Problem & Objective: Reconstruct anterior corneal surface elevation and curvature maps from Placido disk reflection ring images. Fit radial Zernike polynomial coefficients to quantify optical aberrations and diagnose keratoconus.
⚙️ Key MATLAB Functions:
zernikeimfindcirclessurfclsqcurvefitgradient
📊 Expected Output & Metrics: 3D axial/tangential corneal power color maps (Diopters), Root Mean Square (RMS) wavefront error, and Keratoconus Severity Index (KSI).
[rho, theta] = meshgrid(linspace(0, 1, 200), linspace(0, 2*pi, 200));
[x, y] = pol2cart(theta, rho);
Z_coma = (3*rho.^3 - 2*rho) .* cos(theta);
Z_spherical = 6*rho.^4 - 6*rho.^2 + 1;
cornealElevation = 1.2*Z_coma + 0.8*Z_spherical;
figure; surfc(x*4, y*4, cornealElevation); shading interp; colormap jet;
title('3D Corneal Curvature Elevation Map (Diopters)');
Est. Duration: 2–3 Weeks
Request Custom Project →
22. Microscopic Malarial Parasite Detection in Giemsa-Stained Blood Films
Beginner
Toolbox: Image Processing, Computer Vision
Deliverables: Code .m, Report
🎯 Problem & Objective: Automatically identify Plasmodium falciparum/vivax trophozoite ring-stage parasites inside red blood cells (RBCs) from digital Giemsa-stained thin blood smear micrographs.
⚙️ Key MATLAB Functions:
rgb2hsvimbinarizeimfindcirclesregionpropsvisboundaries
📊 Expected Output & Metrics: Parasitized vs normal RBC bounding box annotations, parasitemia parasitemic percentage ratio, and diagnostic sensitivity (>95%).
smear = imread('malaria_giemsa_smear.jpg');
hsv = rgb2hsv(smear);
sat = hsv(:,:,2);
parasite_mask = sat > 0.45;
parasite_mask = bwareaopen(parasite_mask, 5);
[centers, radii] = imfindcircles(rgb2gray(smear), [20 40]);
parasitemia = (sum(parasite_mask(:) > 0) / length(centers)) * 100;
fprintf('Total RBCs: %d | Parasitemia Level: %.2f%%\n', length(centers), parasitemia);
Est. Duration: 4–6 Hours
Request Custom Project →