Confronta due immagini
Questo strumento del KIT confronta due immagini tramite un'impronta percettiva e ti dice quanto si somigliano, anche quando differiscono per dimensione, formato o compressione.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Va oltre il confronto byte per byte: riconosce due versioni della stessa immagine — ridimensionata, ricompressa o salvata in un altro formato — e restituisce un punteggio di somiglianza.
Un'impronta visiva, non un confronto byte per byte
Confrontare due immagini byte per byte fallisce appena cambia qualcosa: basta ridimensionarle o salvarle in un altro formato perché risultino "diverse". Qui invece si calcola un'impronta percettiva di ciascuna immagine e se ne misura la distanza: due versioni della stessa immagine restano vicine anche dopo un ridimensionamento o una ricompressione, mentre immagini diverse restano lontane. Un cambio di angolo, di inquadratura o uno scatto nuovo della stessa scena, però, allontanano l'impronta: lo strumento riconosce le copie di una stessa immagine, non due foto distinte dello stesso soggetto.
A cosa serve
È utile per capire se due file sono la stessa immagine o visuali diversi, per scovare doppioni non identici in una raccolta — copie ridimensionate o ricompresse — o per un controllo qualità: verificare che una foto riesportata resti la stessa dell'originale. Ovunque tu debba rispondere alla domanda "questi due file sono la stessa immagine?", il punteggio ti dà una risposta oggettiva invece di un giudizio a occhio.
Come leggere il punteggio
Il risultato è una misura di somiglianza: valori alti indicano immagini molto vicine nel contenuto, valori bassi immagini che hanno poco in comune. Decidi tu la soglia oltre la quale considerare due foto "la stessa": più alta se vuoi essere severo, più bassa se ti basta una somiglianza di massima. Così adatti lo strumento al tuo caso, che sia un catalogo o un archivio.
Costo e canali
Il confronto elabora le due immagini sui nostri sistemi per ricavarne l'impronta percettiva, quindi ha un costo a immagine e non gira sul dispositivo. Lo usi dal sito per un confronto occasionale, o via API quando devi confrontarne molte in serie, ad esempio cercando in una raccolta la foto più simile a una data.
Casi d'uso
Doppioni tra due cataloghi
Un rivenditore riceve da due fornitori gli stessi file prodotto e vuole scovare le immagini riutilizzate. Il confronto segnala le coppie in cui è la stessa immagine, anche se una è stata ridimensionata o ricompressa.
Controllo di una foto riesportata
Dopo aver riesportato una foto per un annuncio in un formato più leggero, verifichi che sia rimasta la stessa: un punteggio alto conferma che è la stessa immagine, solo ricompressa.
La variante più simile
Tra diverse versioni dello stesso file, cerchi quella più vicina a un riferimento dato. Confrontando ciascuna con il riferimento, il punteggio ti indica qual è la più somigliante.
Domande frequenti
Che differenza c'è con il pHash?
Il pHash è la stessa famiglia di tecnica: un'impronta percettiva dell'immagine. Qui la usiamo per confrontare due immagini specifiche e darti un punteggio sulla coppia, mentre un pHash lo calcoli tu stesso per cercare doppioni in una raccolta. In entrambi i casi si riconoscono copie ridimensionate o ricompresse della stessa immagine, non due scatti diversi dello stesso soggetto.
Ottengo una percentuale?
Ottieni un punteggio di somiglianza: più è alto, più le due immagini sono vicine nel contenuto. Sei tu a fissare la soglia oltre la quale considerarle "la stessa", in base a quanto vuoi essere rigoroso.
Quanto costa?
$0.002 a richiesta più $0.0015 per ogni immagine elaborata nel confronto. Paghi solo quello che usi, senza abbonamento.
Le immagini che carico restano riservate?
Vengono elaborate per ricavarne l'impronta percettiva e poi eliminate dai nostri sistemi: non le conserviamo e non le usiamo per altro.
Che formati accetta?
JPG, PNG e WebP fino a 15 MB e 12 megapixel per immagine. Puoi confrontare foto di formati e dimensioni diversi, dato che il confronto è sull'impronta percettiva, non sui byte del file.
Posso confrontare molte immagini in serie?
Sì. Via API confronti in automatico intere serie, ad esempio per cercare in una raccolta le immagini più vicine a una foto di riferimento.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/image/compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image_a":"https://example.com/a.jpg","image_b":"https://example.com/b.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/compare", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"image_a": "https://example.com/a.jpg",
"image_b": "https://example.com/b.jpg"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.compare",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 15 |
max_megapixels | 12 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |