Как сравнить картинку 1 и картинку 2 ?
на сходство, причем не обязательно, чтобы они могут отличаться размерами. Так же они не должны быть похожи друг на друга на 100%
И какой материал лучше изучить по этой теме?
Сравнение картинок, которые могут отличаться размером (яркостью, контрастностью и т.п.), можно через перцептивные хэш-алгоритмы.
Перцептивные хэши можно сравнивать между собой и делать вывод о степени различия двух наборов данных.
По этому теме есть статья на хабрахабре. Также я находил реализацию этого алгоритма на с++. Для java
уверен либо есть алгоритмы, либо можно написать, т.к. там нет ничего запредельного.
Тут я опишу общий алгоритм, приведя из статьи на хабре:
Уменьшить размер. Самый быстрый способ избавиться от высоких частот — уменьшить изображение. В данном случае мы уменьшаем его до 8х8, так что общее число пикселей составляет 64. Можно не заботиться о пропорциях, просто загоняйте его в квадрат восемь на восемь. Таким образом, хэш будет соответствовать всем вариантам изображения, независимо от размера и соотношения сторон.
Убрать цвет. Маленькое изображение переводится в градации серого, так что хэш уменьшается втрое: с 64 пикселей (64 значения красного, 64 зелёного и 64 синего) всего до 64 значений цвета.
Найти среднее. Вычислите среднее значение для всех 64 цветов.
Цепочка битов. Это самое забавное: для каждого цвета вы получаете 1 или 0 в зависимости от того, он больше или меньше среднего.
Постройте хэш. Переведите 64 отдельных бита в одно 64-битное значение. Порядок не имеет значения, если он сохраняется постоянным (я записываю биты слева направо, сверху вниз).
Итоговый хэш не изменится, если картинку масштабировать, сжать или растянуть. Изменение яркости или контраста, или даже манипуляции с цветами тоже сильно не повлияет на результат. И самое главное: такой алгоритм очень быстрый!
Если вам нужно сравнить две картинки, то просто строите хэш для каждой из них и подсчитываете количество разных битов (это расстояние Хэмминга). Нулевое расстояние означает, что это, скорее всего, одинаковые картинки (или вариации одного изображения). Дистанция 5 означает, что картинки в чём-то отличаются, но в целом всё равно довольно близки друг к другу. Если дистанция 10 или больше, то это, вероятно, совершенно разные изображения.
Итого, чтобы сравнить две картинки:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно шифровать UDP соединение c помощью TLS, JSSE вроде бы поддерживает DTLS, но я не могу найти примеровНекоторые говорят, вообще вроде бы deprecated,...
Добрый день! Подскажите как отсортировать файл со строками в java?
при нажатии на элемент списка RecyclerView открывается новая активность за это отвечает код в адаптере:
Есть проект на Spring MVC и я хочу подключиться с фронтенда (JavaScript) socketio веб сокету через Socks5