Calculadora de diferença de cor CIE94
A calculadora de diferença de cor CIE94 compara duas cores CIELAB com correções separadas para luminosidade, croma e matiz.
Executar grátis
Ela aprimora a distância euclidiana uniforme do CIE76 ao reduzir a influência do croma e do matiz conforme a cor de referência fica mais saturada. Informe os dois trios Lab, mantenha os padrões de artes gráficas ou forneça fatores específicos e receba o Delta E 1994 com todos os componentes intermediários necessários para auditar o cálculo.
O que o CIE94 mede e por que a primeira cor importa
O CIE94 estima quanto duas cores medidas parecem diferentes trabalhando no espaço CIELAB e tratando luminosidade, croma e matiz como contribuições perceptivas separadas. O CIE76 mede apenas a distância em linha reta entre os dois pontos Lab. Essa medida é útil, mas distâncias geométricas iguais nem sempre parecem igualmente diferentes para uma pessoa. O CIE94 inclui termos de escala que aumentam as tolerâncias de croma e matiz de acordo com o croma da cor de referência. Assim, costuma representar melhor decisões práticas de aceitação sem perder transparência ou eficiência. A ordem das cores é relevante: os termos de escala usam o croma da primeira cor, portanto inverter as entradas pode alterar o resultado. Coloque o padrão, alvo, amostra mestra ou cor aprovada em l1, a1 e b1; depois informe a amostra medida em l2, a2 e b2. Os cromas retornados deixam essa direção explícita e ajudam a evitar inversões acidentais em fluxos automatizados de controle de qualidade.
Como escolher os fatores de ponderação
As configurações padrão implementam a forma comum do CIE94 para artes gráficas: k_l, k_c e k_h são 1, K1 é 0.045 e K2 é 0.015. Na avaliação têxtil, costuma-se alterar k_l para 2, K1 para 0.048 e K2 para 0.014, mantendo k_c e k_h em 1. Essas escolhas representam prioridades de tolerância diferentes, e não uma conversão entre espaços de cor. A calculadora expõe todos os fatores para que um laboratório, contrato ou padrão interno possa ser reproduzido com exatidão. Os três pesos de aplicação devem ser maiores que zero, pois dividem os respectivos termos de diferença; K1 e K2 devem ser iguais ou maiores que zero porque controlam a expansão das escalas dependentes do croma. Não ajuste os fatores somente para aprovar uma amostra. Registre a convenção com o resultado e mantenha-a em toda a série. A saída repete os pesos e mostra cada escala e termo normalizado, permitindo verificar a configuração sem depender de padrões ocultos.
Como interpretar e conferir a diferença
O resultado principal, delta_e_94, é uma diferença não negativa: zero significa que as duas entradas Lab são idênticas nesse cálculo, e valores maiores indicam uma separação modelada mais ampla. O CIE94 não define um limite universal de aprovação. A aceitabilidade depende das condições de observação, dos materiais, dos instrumentos, da capacidade do processo, da especificação do cliente e da convenção de ponderação escolhida. Considere qualquer limite como parte do seu padrão de qualidade, não como propriedade da fórmula. A resposta também inclui delta_l e delta_c com sinal, o componente de matiz não negativo, ambos os cromas, todas as escalas e os três termos normalizados. Esses dados esclarecem casos em que dois pares têm diferenças totais parecidas por motivos distintos. As entradas devem ser números finitos, e L* deve ficar entre 0 e 100. O cálculo não usa rede, aleatoriedade, relógio, consulta de perfil nem conversão implícita; o mesmo JSON sempre produz a mesma saída arredondada. Converta RGB ou dados espectrais para uma condição CIELAB comum antes da chamada.
Casos de uso
Comparar uma impressão com a prova
Use a prova aprovada como referência e quantifique se uma amostra impressa permanece na tolerância CIE94 documentada pela gráfica.
Avaliar a uniformidade de tecidos
Aplique os pesos têxteis para comparar uma amostra tingida com o padrão, preservando as contribuições de luminosidade, croma e matiz.
Auditar cálculos de qualidade de cor
Armazene escalas, termos normalizados e pesos com o lote para que a diferença informada possa ser reproduzida de forma independente.
Perguntas frequentes
Qual é a diferença entre CIE94 e CIE76?
O CIE76 é a distância euclidiana direta entre coordenadas Lab. O CIE94 separa luminosidade, croma e matiz e dimensiona os dois últimos pela cor de referência, representando melhor muitas comparações visuais.
A ordem das duas cores faz diferença?
Sim. O CIE94 calcula as escalas de croma e matiz com o croma da primeira cor; por isso, use o padrão ou referência primeiro. Inverter o par pode alterar o resultado.
Quais configurações devo usar para tecidos?
Uma convenção têxtil comum usa k_l = 2, k_c = 1, k_h = 1, K1 = 0.048 e K2 = 0.014. Quando sua especificação definir outros valores, use os fatores exigidos por ela.
Qual valor de Delta E 94 é aceitável?
O CIE94 não estabelece um limite universal. Defina o limite conforme material, observação, processo, instrumentos, acordo com o cliente e convenção de ponderação.
Posso informar cores RGB ou hexadecimais?
Não. O cálculo requer dois trios CIELAB medidos ou convertidos em condições de referência compatíveis. RGB e hexadecimal exigem perfil e conversão explícitos.
Quanto custa um cálculo pela API?
Cada chamada da API custa US$ 0,002. O cálculo também pode ser executado gratuitamente no navegador, pois é determinístico e não usa serviços de rede.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/color/delta-e-94 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"l1":50,"a1":2.6772,"b1":-79.7751,"l2":50,"a2":0,"b2":-82.7485}'const res = await fetch("https://api.kit.forhosting.com/color/delta-e-94", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"l1": 50,
"a1": 2.6772,
"b1": -79.7751,
"l2": 50,
"a2": 0,
"b2": -82.7485
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/delta-e-94",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"l1": 50,
"a1": 2.6772,
"b1": -79.7751,
"l2": 50,
"a2": 0,
"b2": -82.7485
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/delta-e-94", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"l1":50,"a1":2.6772,"b1":-79.7751,"l2":50,"a2":0,"b2":-82.7485}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"l1":50,"a1":2.6772,"b1":-79.7751,"l2":50,"a2":0,"b2":-82.7485}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/delta-e-94", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"l1": 50,
"a1": 2.6772,
"b1": -79.7751,
"l2": 50,
"a2": 0,
"b2": -82.7485
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.delta_e_94",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |