Cambio modelo de color RGB a HSV
Enviado por alannyair33 • 15 de Noviembre de 2022 • Práctica o problema • 1.027 Palabras (5 Páginas) • 388 Visitas
"""
Cambio modelo de color RGB a HSV
"""
def ValorMayor(r,g,b):
if(r>=g and r>=b):
return r
if(g>=r and g>=b):
return g
if(b>=r and b>=g):
return b
def ValorMenor(r,g,b):
if(r<=g and r<=b):
return r
if(g<=r and g<=b):
return g
if(b<=r and b<=g):
return b
def ValorH(maximo,minimo,r,g,b):
GB=g-b
BR=b-r
RG=r-g
denominador=maximo-minimo
if maximo==minimo:
return "No definido, por lo que el valor será el minimo --> 0"
if maximo==r and g>=b:
return 60*(GB/denominador)+0
if maximo==r and g<b:
return 60*(GB/denominador)+360
if maximo==g:
return 60*(BR/denominador)+120
if maximo==b:
return 60*(RG/denominador)+240
def ValorS(maximo,minimo):
if maximo==0:
return 0
else:
return (1-minimo/maximo)*255
def ValorV(maximo):
return maximo
def RGBtoHSV():
while(True):
print("\n************")
print("*RGB to HSV*")
print("************")
R=int(input("Ingrese valor R en el rango [0,255]: "))
G=int(input("Ingrese valor G en el rango [0,255]: "))
B=int(input("Ingrese valor B en el rango [0,255]: "))
if (0<=R<=255) and (0<=G<=255) and (0<=B<=255):
break
else:
print("Uno de los valores ingresados no se encuentra en el intervalo solicitado")
print("Intente nuevamente...")
while(True):
print("1. Deseo imprimir H[0-360] y S,V [0-255]")
print("2. Deseo imprimir H[0-360] y S,V [0-100]")
A=input("\nIngrese su opcion deseada (1 o 2): ")
if A=="1" or A=="2":
break
else:
print("Opcion no valida D:\nIntente nuevamente...")
mayor=ValorMayor(R,G,B)
menor=ValorMenor(R,G,B)
H=ValorH(mayor,menor,R,G,B)
if H!="No definido, por lo que el valor será el minimo --> 0":
H=int(H)
S=int(ValorS(mayor,menor))
V=int(ValorV(mayor))
if A=="1":
pass
else: #elif A=="2":
S=int(S/255*100)
V=int(V/255*100)
print("Para el modelo de seleccion ",A,":")
print("El valor de H: ",H,"\tEl valor de S: ",S,"\tEl
...