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

Hitta dubbletter

Ladda upp flera bilder för att upptäcka dubbletter och nästan identiska bilder med perceptuell hashning (dHash). Grupperar liknande bilder tillsammans, identifierar versionen med bäst kvalitet i varje grupp och beräknar potentiella utrymmesbesparingar.

API-slutpunkt

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

Tar emot multipart-formulärdata med flera bildfiler och ett valfritt JSON-fält settings.

Parametrar

ParameterTypObligatoriskStandardBeskrivning
thresholdnumberNej8Maximalt Hamming-avstånd för att betrakta bilder som dubbletter (0 till 20). Lägre = strängare matchning

Filfält

Ladda upp minst 2 bildfiler i multipart-begäran (alla med fältnamnet file eller vilket fältnamn som helst för fildelar).

Exempelbegäran

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}'

Exempelsvar

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": []
}

Svarsfält

FältTypBeskrivning
totalImagesnumberAntal bilder som analyserats framgångsrikt
duplicateGroupsarrayGrupper av dubblettbilder
uniqueImagesnumberAntal bilder som inte ingår i någon dubblettgrupp
spaceSaveablenumberTotalt antal byte som kan sparas genom att ta bort dubbletter som inte är bäst
skippedFilesarrayFiler som inte kunde bearbetas (med filnamn och orsak)

Objekt för dubblettgrupp

FältTypBeskrivning
groupIdnumberGruppidentifierare
filesarrayBilder i denna dubblettgrupp

Filobjekt (inom en grupp)

FältTypBeskrivning
filenamestringUrsprungligt filnamn
similaritynumberLikhetsprocent i förhållande till referensbilden (den första i gruppen)
widthnumberBildbredd i pixlar
heightnumberBildhöjd i pixlar
fileSizenumberFilstorlek i byte
formatstringBildformat
isBestbooleanOm detta är versionen med högst kvalitet (flest pixlar, störst fil)
thumbnailstring eller nullBase64 JPEG-miniatyr (200px bred) för förhandsvisning

Anmärkningar

  • Använder en 128-bitars dHash (64-bitars rad + 64-bitars kolumn) för perceptuell likhetsdetektering. Detta fångar dubbletter även vid storleksändringar, omkomprimering och mindre redigeringar.
  • Tröskelvärdet representerar det maximala Hamming-avståndet mellan hashvärden. Standardvärdet 8 fångar nästan identiska bilder samtidigt som falska positiva undviks. Använd 0 för endast pixelidentiska, eller 15-20 för mycket lös matchning.
  • Den "bästa" bilden i varje grupp är den med flest pixlar (bredd x höjd), med filstorlek som avgörande faktor vid lika resultat.
  • Minst 2 bilder krävs. Filer som misslyckas med validering eller avkodning rapporteras i skippedFiles i stället för att få hela begäran att misslyckas.
  • Miniatyrer är 200px breda JPEG-förhandsvisningar kodade som data-URI:er.
  • Alla vanliga format stöds (HEIC, RAW, PSD, SVG avkodas automatiskt).