Click Here to Search This Site

Rabu, 23 Mei 2012

Procedure Get_YCbCr dan Get_TSL VB 6.0


Public Sub Get_YCbCr(Red As Integer, Green As Integer, Blue As Integer, _
              Y As Single, Cb As Single, Cr As Single)
    Y = (0.222 * Red) + (0.707 * Green) + (0.07 * Blue)
    Cb = (-0.159 * Red) + (-0.332 * Green) + (0.05 * Blue)
    Cr = (0.5 * Red) + (-0.419 * Green) + (-0.081 * Blue)
End Sub


 '==============================================
Public Sub Get_TSL(Red As Integer, Green As Integer, Blue As Integer, _
              Tint As Single, Sat As Single, Light As Single)
Dim rr As Single, gg As Single, Phi As Single


    '========== ada masalah DEBUG ==============
 
     Phi = 3.14
    rr = (Red / (Red + Green + Blue)) - (1 / 3)
    gg = (Green / (Red + Green + Blue)) - (1 / 3)

 
 'lightness
    Light = (0.299 * Red) + (0.587 * Green) + (0.114 * Blue)

 'saturation
    Sat = (9 / (5 * (rr ^ 2 + gg ^ 2))) ^ 0.5
   
    'Mencari Tint
    If gg = 0 Then
        Tint = 0
    ElseIf gg < 0 Then
        Tint = (Atn(rr / gg) / (2 * Phi)) + (3 / 4)
    ElseIf gg > 0 Then
        Tint = (Atn(rr / gg) / (2 * Phi)) + (1 / 4)
    End If
End Sub


Author : Yusron Rijal, MT