how to sample some random patches of an image?

조회 수: 3 (최근 30일)
farnaz fanaee
farnaz fanaee 2016년 11월 30일
답변: Ayush 2024년 10월 7일
i want to sample some rrandom patches from an face image

답변 (1개)

Ayush
Ayush 2024년 10월 7일
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

카테고리

Help CenterFile Exchange에서 Polygons에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by