how to sample some random patches of an image?

3 visualizaciones (últimos 30 días)
farnaz fanaee
farnaz fanaee el 30 de Nov. de 2016
Respondida: Ayush el 7 de Oct. de 2024
i want to sample some rrandom patches from an face image

Respuestas (1)

Ayush
Ayush el 7 de Oct. de 2024
Hi,
You can follow bellow steps to sample random patches from the image:
  1. Load image in MATLAB.
  2. Specify the size of the patches you want to extract.
  3. Generate random coordinates to extract patches.
  4. Use the coordinates to extract patches from the image.
Refer to the below pseudo code for a better understanding:
% Read the image
image = imread('face_image.jpg'); % Replace with your image file
% Convert to grayscale if the image is colored
if size(image, 3) == 3
image = rgb2gray(image);
end
% Define the patch size
patchSize = [50, 50]; % Example patch size of 50x50 pixels
% Get the size of the image
[imageHeight, imageWidth] = size(image);
% Number of patches you want to sample
numPatches = 5;
% Initialize a cell array to hold patches
patches = cell(1, numPatches);
% Randomly sample patches
for i = 1:numPatches
% Randomly select the top-left corner of the patch
x = randi([1, imageWidth - patchSize(2) + 1]);
y = randi([1, imageHeight - patchSize(1) + 1]);
% Extract the patch
patch = image(y:y+patchSize(1)-1, x:x+patchSize(2)-1);
% Store the patch
patches{i} = patch;
end
% Display the patches
figure;
for i = 1:numPatches
subplot(1, numPatches, i);
imshow(patches{i});
title(['Patch ', num2str(i)]);
end

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by