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

Yinelenenleri Bul

Algısal karma (dHash) kullanarak yinelenenleri ve neredeyse yinelenenleri tespit etmek için birden fazla görsel yükleyin. Benzer görselleri birlikte gruplandırır, her gruptaki en iyi kalitedeki sürümü belirler ve olası alan tasarrufunu hesaplar.

API Uç Noktası

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

Birden fazla görsel dosyası ve isteğe bağlı bir JSON settings alanı içeren multipart form verisini kabul eder.

Parametreler

ParametreTürZorunluVarsayılanAçıklama
thresholdnumberHayır8Görselleri yinelenen olarak kabul etmek için maksimum Hamming mesafesi (0 ile 20 arası). Daha düşük = daha katı eşleştirme

Dosya Alanları

Multipart isteğinde en az 2 görsel dosyası yükleyin (tümü file alan adını veya dosya bölümleri için herhangi bir alan adını kullanarak).

Örnek İstek

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

Örnek Yanıt

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

Yanıt Alanları

AlanTürAçıklama
totalImagesnumberBaşarıyla analiz edilen görsel sayısı
duplicateGroupsarrayYinelenen görsel grupları
uniqueImagesnumberHerhangi bir yinelenen grubun parçası olmayan görsel sayısı
spaceSaveablenumberEn iyi olmayan yinelenenleri kaldırarak tasarruf edilebilecek toplam bayt
skippedFilesarrayİşlenemeyen dosyalar (dosya adı ve nedeniyle birlikte)

Yinelenen Grup Nesnesi

AlanTürAçıklama
groupIdnumberGrup tanımlayıcısı
filesarrayBu yinelenen gruptaki görseller

Dosya Nesnesi (bir grup içinde)

AlanTürAçıklama
filenamestringOrijinal dosya adı
similaritynumberReferans görsele (gruptaki ilki) benzerlik yüzdesi
widthnumberPiksel cinsinden görsel genişliği
heightnumberPiksel cinsinden görsel yüksekliği
fileSizenumberBayt cinsinden dosya boyutu
formatstringGörsel biçimi
isBestbooleanBunun en yüksek kalitedeki sürüm olup olmadığı (en fazla piksel, en büyük dosya)
thumbnailstring veya nullÖnizleme için Base64 JPEG küçük resim (200px genişliğinde)

Notlar

  • Algısal benzerlik tespiti için 128 bitlik bir dHash (64 bitlik satır + 64 bitlik sütun) kullanır. Bu, yeniden boyutlandırma, yeniden sıkıştırma ve küçük düzenlemeler arasında bile yinelenenleri yakalar.
  • Eşik değeri, karmalar arasındaki maksimum Hamming mesafesini temsil eder. Varsayılan 8 değeri, yanlış pozitiflerden kaçınırken neredeyse yinelenenleri yakalar. Yalnızca piksel bakımından aynı olanlar için 0, çok gevşek eşleştirme için 15-20 kullanın.
  • Her gruptaki "en iyi" görsel, en fazla piksele (genişlik x yükseklik) sahip olandır; eşitlik durumunda dosya boyutu belirleyicidir.
  • En az 2 görsel gereklidir. Doğrulama veya çözümlemede başarısız olan dosyalar, tüm isteğin başarısız olmasına neden olmak yerine skippedFiles içinde bildirilir.
  • Küçük resimler, veri URI'leri olarak kodlanmış 200px genişliğinde JPEG önizlemeleridir.
  • Tüm yaygın biçimler desteklenir (HEIC, RAW, PSD, SVG otomatik olarak çözümlenir).