% Train net = trainNetwork(imds, pxds, lgraph, options);
% Segment new image C = semanticseg(I, net); B = labeloverlay(I, C); imshow(B); Goal: Remove noise from images (medical MRI, low-light photography).
% Prepare noisy-clean pairs noisyImgs = imnoise(cleanImgs, 'gaussian', 0, 0.01); % Build autoencoder hiddenSize = 100; autoenc = trainAutoencoder(noisyImgs, hiddenSize, ... 'EncoderTransferFunction', 'satlin', ... 'DecoderTransferFunction', 'purelin', ... 'L2WeightRegularization', 0.001);
% Using pre-trained ResNet-18 net = resnet18; lgraph = layerGraph(net); lgraph = removeLayers(lgraph, 'fc1000', 'prob', 'ClassificationLayer_predictions'); newLayers = [ fullyConnectedLayer(2, 'Name', 'fc_new') softmaxLayer('Name', 'softmax') classificationLayer('Name', 'classout')]; lgraph = addLayers(lgraph, newLayers); lgraph = connectLayers(lgraph, 'pool5', 'fc_new'); % Train on retinal dataset (1000 images/class) options = trainingOptions('sgdm', 'InitialLearnRate', 1e-4, 'MaxEpochs', 20); trainedNet = trainNetwork(augmentedTrainSet, lgraph, options); % Train net = trainNetwork(imds, pxds, lgraph, options);
% Achieved 94% sensitivity, 91% specificity MATLAB abstracts away low-level complexity while giving you full control over neural network architectures for image processing. Whether you are removing noise with autoencoders, detecting tumors with U-Net, or classifying satellite imagery with CNNs, the combination of AI and MATLAB's image processing ecosystem is a powerful toolkit.
% Annotate I = insertObjectAnnotation(I, 'Rectangle', bboxes, labels); imshow(I); Goal: Assign a class to every pixel (medical imaging, autonomous driving).
map = gradCAM(net, I, classIdx); imshow(I); hold on; imagesc(map, 'AlphaData', 0.5); Problem: Detect diabetic retinopathy from fundus images. Solution: CNN classifier + heatmap localization. 'DecoderTransferFunction', 'purelin',
% Load pre-trained VDSR network net = vdsrNetwork; % Low-resolution image lrImage = imresize(highResImage, 0.25); lrImage = imresize(lrImage, size(highResImage));
% Predict pred = classify(net, imdsValidation); accuracy = mean(pred == imdsValidation.Labels); disp(['Accuracy: ', num2str(accuracy)]); Goal: Locate and classify multiple objects within an image.
% Train network options = trainingOptions('adam', 'Plots', 'training-progress'); net = trainNetwork(imdsTrain, layers, options); % Low-resolution image lrImage = imresize(highResImage
% Denoise denoisedImgs = predict(autoenc, noisyImgs); Goal: Increase image resolution while preserving details.
% Load and preprocess images imds = imageDatastore('image_folder', 'IncludeSubfolders', true, 'LabelSource', 'foldernames'); [imdsTrain, imdsValidation] = splitEachLabel(imds, 0.7, 'randomized'); % Define CNN architecture layers = [ imageInputLayer([64 64 3]) convolution2dLayer(3, 8, 'Padding', 'same') batchNormalizationLayer() reluLayer() maxPooling2dLayer(2, 'Stride', 2) fullyConnectedLayer(2) softmaxLayer() classificationLayer()];
% Load ground truth pixel labels imds = imageDatastore('images'); pxds = pixelLabelDatastore('labels', classNames, labelIDs); % Create U-Net lgraph = unetLayers([256 256 3], numClasses);
Want to know more ?
Contact us