Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar RGB kepada HSV dan Kembali Lagi Dalam Julat 0-255?

Bagaimana untuk Menukar RGB kepada HSV dan Kembali Lagi Dalam Julat 0-255?

Barbara Streisand
Lepaskan: 2024-12-11 18:24:15
asal
911 orang telah melayarinya

How to Convert RGB to HSV and Back Again Within the 0-255 Range?

Menukar RGB kepada HSV dan HSV kepada RGB Dalam Julat 0-255

Menukar perwakilan warna antara RGB (Merah, Hijau, Biru) dan HSV (Hue, Saturation, Value) adalah penting untuk pemprosesan imej dan grafik komputer. Transformasi ini memerlukan menterjemah nilai warna dalam julat tertentu untuk memastikan penukaran yang tepat.

Penukaran RGB ke HSV

Penukaran RGB ke HSV melibatkan langkah berikut:

  1. Normalkan Nilai RGB: Bahagikan nilai RGB sebanyak 255 kepada skala mereka antara 0 dan 1.
  2. Cari Nilai Minimum dan Maksimum: Tentukan nilai minimum dan maksimum antara komponen RGB.
  3. Kira Nilai (V): Nilai adalah sama dengan RGB maksimum nilai.
  4. Kira Ketepuan (S): Kira ketepuan menggunakan formula:

    S = (V - min) / V
    Salin selepas log masuk
  5. Kira Hue (H): Tentukan rona menggunakan pernyataan bersyarat berdasarkan nilai relatif RGB komponen:

    if (R >= G && R >= B):
     H = (G - B) / (V - min)
    elif (G >= R && G >= B):
     H = 2 + (B - R) / (V - min)
    else:
     H = 4 + (R - G) / (V - min)
    Salin selepas log masuk
  6. Tukar kepada Darjah: Darab nilai rona sebanyak 60 untuk mendapatkan darjah.

Penukaran HSV kepada RGB

Penukaran HSV kepada RGB diteruskan sebagai berikut:

  1. Normalkan Nilai HSV: Pastikan rona berada dalam julat 0-360 darjah, ketepuan dan nilai berada dalam 0-1.
  2. Cari Indeks Hue: Tentukan indeks integer bagi hue:

    i = int(H / 60.0)
    Salin selepas log masuk
  3. Kira Bahagian Pecahan: Kira bahagian pecahan warna:

    ff = H / 60.0 - i
    Salin selepas log masuk
  4. Tetapkan RGB Lalai Nilai:

    R = G = B = V
    Salin selepas log masuk
  5. Kira Nilai RGB: Laraskan nilai RGB berdasarkan indeks warna:

    if (i == 0):
     B = p
    elif (i == 1):
     R = q
    elif (i == 2):
     G = p
    elif (i == 3):
     R = p
    elif (i == 4):
     B = t
    elif (i == 5):
     G = p
    Salin selepas log masuk
  6. Normalkan Nilai RGB: Gandakan nilai RGB dengan 255 untuk memulihkan julat 0-255.

Atas ialah kandungan terperinci Bagaimana untuk Menukar RGB kepada HSV dan Kembali Lagi Dalam Julat 0-255?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan