Maison  >  Article  >  développement back-end  >  Comment convertir des plages de nombres en Python tout en préservant les ratios ?

Comment convertir des plages de nombres en Python tout en préservant les ratios ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-14 19:25:02996parcourir

How to Convert Number Ranges in Python While Preserving Ratios?

Conversion de plages de nombres avec préservation des ratios en Python

Dans le traitement d'images, il est souvent nécessaire de convertir les valeurs de pixels d'une plage à une autre, tout en conservant les ratios relatifs entre les points. Cette conversion garantit que les caractéristiques et les détails importants sont préservés malgré un changement dans la représentation numérique.

Pour réaliser cette conversion préservant le ratio, nous pouvons utiliser la formule suivante :

NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin

Décomposition la formule :

  • OldValue : la valeur de pixel d'origine dans l'ancienne plage.
  • OldMin : la valeur minimale dans l'ancienne plage.
  • OldMax : la valeur maximale dans l'ancienne plage.
  • NewMax : la valeur maximale dans la nouvelle plage (par exemple, 100).
  • NewMin : la valeur minimale dans la nouvelle plage (par exemple, 0).

Par exemple, si vous avez une valeur de pixel de -5 000,00 dans une image avec une plage de -16 000,00 à 16 000,00 et que vous souhaitez la convertir dans la plage de 0 à 100, la nouvelle valeur serait :

NewValue = (((-5000.00 - (-16000.00)) * (100 - 0)) / (16000.00 - (-16000.00))) + 0
NewValue = 31.25

Cette nouvelle valeur de 31,25 conserve la même position relative dans la nouvelle plage que la valeur d'origine dans l'ancienne plage.

Vous pouvez personnaliser davantage cette formule en ajustant les valeurs NewMin et NewMax. pour répondre à des exigences spécifiques (par exemple, modifier la plage cible de -50 à 800).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn