Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Julat Nombor dalam Python Semasa Memelihara Nisbah?

Bagaimana untuk Menukar Julat Nombor dalam Python Semasa Memelihara Nisbah?

Susan Sarandon
Susan Sarandonasal
2024-11-14 19:25:021073semak imbas

How to Convert Number Ranges in Python While Preserving Ratios?

Menukar Julat Nombor dengan Pemeliharaan Nisbah dalam Python

Dalam pemprosesan imej, selalunya perlu menukar nilai piksel daripada satu julat kepada julat yang lain, sambil mengekalkan nisbah relatif antara mata. Penukaran ini memastikan ciri dan butiran penting dikekalkan walaupun terdapat perubahan dalam perwakilan angka.

Untuk mencapai penukaran memelihara nisbah ini, kami boleh menggunakan formula berikut:

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

Memecahkan formula:

  • OldValue: Nilai piksel asal dalam julat lama.
  • OldMin: Nilai minimum dalam julat lama.
  • OldMax: Nilai maksimum dalam julat lama.
  • NewMax: Nilai maksimum dalam julat baharu (cth., 100).
  • NewMin: Nilai minimum dalam julat baharu (cth., 0).

Sebagai contoh, jika anda mempunyai nilai piksel -5000.00 dalam imej dengan julat -16000.00 hingga 16000.00 dan anda ingin menukarnya kepada julat 0 hingga 100, nilai baharunya ialah:

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

Nilai baharu 31.25 ini mengekalkan kedudukan relatif yang sama dalam julat baharu seperti nilai asal dalam julat lama.

Anda boleh memperibadikan formula ini lagi dengan melaraskan nilai NewMin dan NewMax untuk menampung keperluan khusus (cth., menukar julat sasaran kepada -50 hingga 800).

Atas ialah kandungan terperinci Bagaimana untuk Menukar Julat Nombor dalam Python Semasa Memelihara Nisbah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn