This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Trova Duplicati

Carica più immagini per rilevare duplicati e quasi duplicati usando l'hashing percettivo (dHash). Raggruppa le immagini simili, identifica la versione di migliore qualità in ogni gruppo e calcola il potenziale risparmio di spazio.

Endpoint API

POST /api/v1/tools/image/find-duplicates

Accetta dati di form multipart con più file immagine e un campo JSON settings opzionale.

Parametri

ParametroTipoObbligatorioPredefinitoDescrizione
thresholdnumberNo8Distanza di Hamming massima per considerare le immagini come duplicate (da 0 a 20). Più basso = corrispondenza più rigorosa

Campi File

Carica almeno 2 file immagine nella richiesta multipart (tutti usando il nome di campo file o qualsiasi nome di campo per le parti file).

Richiesta di Esempio

bash
curl -X POST http://localhost:1349/api/v1/tools/image/find-duplicates \
  -H "Authorization: Bearer si_your-api-key" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F 'settings={"threshold": 8}'

Risposta di Esempio

json
{
  "totalImages": 4,
  "duplicateGroups": [
    {
      "groupId": 1,
      "files": [
        {
          "filename": "photo1.jpg",
          "similarity": 100,
          "width": 4032,
          "height": 3024,
          "fileSize": 2450000,
          "format": "jpeg",
          "isBest": true,
          "thumbnail": "data:image/jpeg;base64,/9j/..."
        },
        {
          "filename": "photo2.jpg",
          "similarity": 96.88,
          "width": 1920,
          "height": 1440,
          "fileSize": 850000,
          "format": "jpeg",
          "isBest": false,
          "thumbnail": "data:image/jpeg;base64,/9j/..."
        }
      ]
    }
  ],
  "uniqueImages": 2,
  "spaceSaveable": 850000,
  "skippedFiles": []
}

Campi della Risposta

CampoTipoDescrizione
totalImagesnumberNumero di immagini analizzate con successo
duplicateGroupsarrayGruppi di immagini duplicate
uniqueImagesnumberNumero di immagini non appartenenti ad alcun gruppo di duplicati
spaceSaveablenumberTotale dei byte che potrebbero essere risparmiati rimuovendo i duplicati non migliori
skippedFilesarrayFile che non è stato possibile elaborare (con nome file e motivo)

Oggetto Gruppo di Duplicati

CampoTipoDescrizione
groupIdnumberIdentificatore del gruppo
filesarrayImmagini in questo gruppo di duplicati

Oggetto File (all'interno di un gruppo)

CampoTipoDescrizione
filenamestringNome file originale
similaritynumberPercentuale di somiglianza rispetto all'immagine di riferimento (la prima del gruppo)
widthnumberLarghezza dell'immagine in pixel
heightnumberAltezza dell'immagine in pixel
fileSizenumberDimensione del file in byte
formatstringFormato dell'immagine
isBestbooleanSe questa è la versione di qualità più alta (più pixel, file più grande)
thumbnailstring o nullMiniatura JPEG in Base64 (larga 200px) per l'anteprima

Note

  • Usa un dHash a 128 bit (64 bit di riga + 64 bit di colonna) per il rilevamento della somiglianza percettiva. Questo intercetta i duplicati anche attraverso ridimensionamenti, ricompressioni e modifiche minori.
  • La soglia rappresenta la distanza di Hamming massima tra gli hash. Il valore predefinito di 8 intercetta i quasi duplicati evitando i falsi positivi. Usa 0 per soli duplicati identici a livello di pixel, oppure 15-20 per una corrispondenza molto larga.
  • L'immagine "migliore" in ogni gruppo è quella con più pixel (larghezza x altezza), con la dimensione del file come criterio di spareggio.
  • Sono richieste almeno 2 immagini. I file che non superano la validazione o la decodifica vengono segnalati in skippedFiles invece di far fallire l'intera richiesta.
  • Le miniature sono anteprime JPEG larghe 200px codificate come data URI.
  • Sono supportati tutti i formati comuni (HEIC, RAW, PSD, SVG decodificati automaticamente).