ForHosting KIT · Imágenes

Calcule el histograma de cada canal de una imagen

La calculadora de histogramas de imagen convierte valores de píxel separados por canal en distribuciones de frecuencia compactas.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

Indique uno o varios canales con nombre, elija la cantidad de intervalos y obtenga una matriz ordenada de recuentos para cada canal. Resulta útil cuando la imagen ya está decodificada y usted necesita estadísticas reproducibles sin subir ni volver a codificar el archivo original. Cada valor se valida dentro del rango de 8 bits, cada píxel se asigna a un único intervalo y una lista vacía genera un error.

Prepare los valores de cada canal

Envíe los píxeles decodificados en la matriz channels. Cada elemento debe incluir un nombre de canal único y una matriz values con intensidades enteras de 0 a 255. Es habitual usar nombres como red, green, blue, alpha o gray, aunque la calculadora no impone un modelo de color: cualquier componente que utilice el mismo dominio de 8 bits es válido. El orden de los valores no altera el histograma, pues solo importa su frecuencia. Cada canal debe contener al menos un píxel. La solicitud se rechaza si falta un nombre, si se repite, si una lista está vacía o si un valor es decimal o queda fuera del rango. Estas comprobaciones impiden que datos incompletos parezcan una distribución válida. Se admiten hasta dieciséis canales y un millón de valores por canal.

Comprenda la asignación de intervalos

Elija entre 1 y 256 intervalos enteros, o deje el campo sin indicar para utilizar 16. El dominio completo de intensidades de 8 bits se divide en tramos de igual anchura, desde 0 hasta 255. Con 16 intervalos, el primero cuenta de 0 a 15, el segundo de 16 a 31 y el último de 240 a 255. En general, el índice se obtiene tomando la parte entera inferior del valor multiplicado por la cantidad de intervalos y dividido entre 256. El extremo superior se conserva expresamente en el último intervalo, por lo que 255 nunca queda fuera. La definición sigue siendo determinista cuando 256 no es divisible por la cantidad elegida. Cada píxel incrementa un solo contador y la suma de los contadores coincide con pixel_count.

Interprete y valide el resultado

La respuesta indica bins, los límites fijos value_min y value_max, y un objeto de histograma por canal de entrada. Cada objeto conserva el nombre, informa pixel_count y devuelve counts en orden ascendente de intensidad. La posición inicial representa siempre el tramo más oscuro y la final, el más claro, lo que facilita graficar o comparar las matrices. Puede sumar counts y comprobar que coincide con pixel_count para detectar truncamientos producidos en otra parte de su flujo. Un histograma resume frecuencias, no posiciones espaciales, por lo que dos imágenes visualmente distintas pueden compartirlo. Tampoco decodifica archivos, deduce espacios de color, normaliza la exposición ni mezcla canales. Decodifique primero la fuente y use esta capacidad para el recuento. En el navegador los datos permanecen locales; la automatización por API cuesta $0.002 por solicitud.

Compare distribuciones de color

Genere recuentos equivalentes para rojo, verde y azul antes de medir diferencias entre imágenes decodificadas.

Detecte extremos de exposición

Revise los primeros y últimos intervalos para localizar canales dominados por sombras o luces.

Valide un flujo de procesamiento

Registre histogramas deterministas antes y después de una transformación para descubrir cambios tonales inesperados.

¿Cuánto cuesta?

La ejecución por API cuesta $0.002 por solicitud. El mismo cálculo determinista también puede ejecutarse en su navegador.

¿Qué valores de píxel se aceptan?

Cada valor debe ser un entero de 0 a 255, como corresponde a un canal de imagen de 8 bits.

¿Qué ocurre si una lista de píxeles está vacía?

La solicitud falla con un error de entrada no válida; una lista vacía no produce un histograma lleno de ceros.

¿Cómo se asignan los valores si los intervalos no dividen 256?

El índice se calcula redondeando hacia abajo value multiplicado por bins y dividido entre 256; el valor 255 queda en el último intervalo.

¿Se decodifican archivos PNG, JPEG o WebP?

No. Debe proporcionar valores ya decodificados y organizados en matrices de canales con nombre.

¿Pueden los canales tener cantidades de píxeles diferentes?

Sí. Cada canal se cuenta por separado y devuelve su propio pixel_count.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/image/histogram

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/image/histogram \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"channels":[{"channel":"red","values":[0,15,16,127,128,240,255]},{"channel":"green","values":[0,64,64,128,192,255]}]}'
{
  "channels": [
    {
      "channel": "red",
      "values": [
        0,
        15,
        16,
        127,
        128,
        240,
        255
      ]
    },
    {
      "channel": "green",
      "values": [
        0,
        64,
        64,
        128,
        192,
        255
      ]
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.histogram",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_channels16
max_values_per_channel1000000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →