Обнаружение, если два изображения визуально идентичны

Я не тестировал его полностью, но похоже что-то вроде этого:

import org.apache.spark.deploy.SparkHadoopUtil
import org.apache.hadoop.fs.{FileSystem, Path, LocatedFileStatus, RemoteIterator}
import java.net.URI

val path: String = ???

val hconf = SparkHadoopUtil.get.newConfiguration(sc.getConf)
val hdfs = FileSystem.get(hconf)
val iter = hdfs.listFiles(new Path(path), false)

def listFiles(iter: RemoteIterator[LocatedFileStatus]) = {
  def go(iter: RemoteIterator[LocatedFileStatus], acc: List[URI]): List[URI] = {
    if (iter.hasNext) {
      val uri = iter.next.getPath.toUri
      go(iter, uri :: acc)
    } else {
      acc
    }
  }
  go(iter, List.empty[java.net.URI])
}

listFiles(iter).filter(_.toString.endsWith(".csv"))
38
задан Bemmu 4 December 2008 в 06:25
поделиться

8 ответов

findimagedupes довольно хорош. Можно работать "findimagedupes-v изображения цифрового отпечатка", чтобы позволить ему распечатать "проницательный хеш", например.

14
ответ дан sanxiyn 10 October 2019 в 08:02
поделиться

Я не знаю алгоритм позади него, но , Microsoft Live Image Search всего добавила эта возможность. Picasa также имеет способность определить поверхности в изображениях и поверхности групп тот подобный взгляд. Большую часть времени это - тот же человек.

Некоторая технология машинного обучения как метод опорных векторов, нейронная сеть, наивный классификатор Байеса или байесовская сеть была бы лучшей в этом типе проблемы. Я записал один каждый из первых трех для классификации рукописных цифр, который является по существу распознаванием образов изображения.

1
ответ дан Scottie T 10 October 2019 в 08:02
поделиться

Существует DPEG, Дублирующийся менеджер Медиа , но его код не открыт. Это - очень старый инструмент - я не забываю использовать его в 2003.

0
ответ дан Dan Dascalescu 10 October 2019 в 08:02
поделиться

Вы могли использовать разность, чтобы видеть, ДЕЙСТВИТЕЛЬНО отличаются ли они.. Я предполагаю, что это удалит много бесполезного сравнения. Затем для алгоритма я использовал бы вероятностный подход.. что является возможностями, что они выглядят одинаково.. Я основывал это на сумме rgb в каждом пикселе. Вы могли также найти некоторые другие метрики, такие как яркость и наполнить как этот.

0
ответ дан user35978 10 October 2019 в 08:02
поделиться

Если у Вас есть много изображений, цветная гистограмма могла бы использоваться для получения грубой близости изображений прежде, чем сделать сравнение полного образа каждого изображения друг против друга один (т.е. O (n^2)).

0
ответ дан FryGuy 10 October 2019 в 08:02
поделиться

измените размеры изображения к 1x1 эльф..., если они точны, существует маленькая вероятность, они - то же изображение... теперь изменяют размеры его к 2x2 изображение эльфа, если все 4 эльфа точны, существует большая вероятность, они точны... тогда 3x3, если все 9 эльфов точны... хороший шанс и т.д. тогда 4x4, если все 16 эльфов точны... лучший шанс.

и т.д.

выполнение его этот путь, можно ли сделать эффективность improvments..., если 1x1 пиксельная сетка выключена много, почему проверка беспокойства 2x2 сетка? и т.д.

0
ответ дан Ape-inago 10 October 2019 в 08:02
поделиться

Цветная гистограмма хороша для того же изображения, которое изменялось, передискретизировалось и т.д.
, Если Вы хотите соответствовать фотографиям различных людей того же ориентира, это более хитро - смотрят на классификаторы Хаара. Opencv является большой свободной библиотекой для обработки изображений.

4
ответ дан Martin Beckett 10 October 2019 в 08:02
поделиться

Взаимная корреляция или фазовая корреляция сообщит вам, являются ли изображения одинаковыми, даже с шумом, ухудшением качества и горизонтальным или вертикальным смещением. Использование методов на основе БПФ сделает его намного быстрее, чем алгоритм, описанный в вопросе.

Однако обычный алгоритм не работает для изображений, которые не имеют одинаковый масштаб или поворот. Вы можете предварительно повернуть или масштабировать их, но это действительно интенсивно. По-видимому, вы также можете выполнить корреляцию в лог-полярном пространстве, и оно будет инвариантно к вращению, перемещению и масштабированию, но я не знаю деталей достаточно хорошо, чтобы это объяснить.

Пример MATLAB: Регистрация изображение, использующее нормализованную кросс-корреляцию

Википедия называет это « фазовой корреляцией » а также описывает , делающий его инвариантным к масштабу и повороту :

Метод может быть расширен для определения разницы поворота и масштабирования между двумя изображениями, сначала преобразовав изображения в логополярные координаты. Благодаря свойствам преобразования Фурье, параметры поворота и масштабирования могут быть определены способом, инвариантным к переносу.

5
ответ дан 27 November 2019 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: