Borrar filtros
Borrar filtros

How to normalize the scale of an image to make it scaling invariant?

10 visualizaciones (últimos 30 días)
Abul Abbas
Abul Abbas el 17 de Feb. de 2021
Respondida: Ayush el 12 de Ag. de 2024 a las 5:10
I want to make my image to be scaling invariant by normalizing the scale.

Respuestas (1)

Ayush
Ayush el 12 de Ag. de 2024 a las 5:10
Hi Abdul,
scaling invariance can be achieved in the following way through normalization:
  • Normalization : You can normalize the scale of an image by making the highest dimension of the image equal to a given "target size". This way, the image also becomes scaling invariant. Here's a pseudo code for normalization of the image in order to make it scaling invariant.
function normalizedImage = normalizeScale(image, targetSize)
% Get the dimensions of the image
[height, width, ~] = size(image);
% Calculate the scale factor
scaleFactor = targetSize / max(height, width);
% Calculate the new dimensions
newWidth = round(width * scaleFactor);
newHeight = round(height * scaleFactor);
% Resize the image
normalizedImage = imresize(image, [newHeight, newWidth]);
end
BONUS: Another way to achieve scaling-invariance is to use Scale-Invariant Feature Transform (SIFT). You can read more about it in the following documentation : https://in.mathworks.com/help/vision/ref/detectsiftfeatures.html
Hope it Helps!

Community Treasure Hunt

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

Start Hunting!

Translated by