Я пытаюсь отфильтровать разницу между двумя изображениями (скриншоты). К сожалению, у меня нет абсолютно никакого опыта в Java и изображениях, и у меня нет реального понятия, что искать.Разница фильтров между 2 изображениями?
Есть ли готовые к использованию классы для этого?
Что я ожидал что-то вроде:
Image imgA = new (pathToA); // Image with for instance 500kb
Image imgB = new (pathToB); // Image with for instance 500kb
Image imgC = ImageFilter.filterDifference(imgA, imgB); // Only the difference between imgA and imgB and therefore for instance 20kb
Edit:
Примера: Во всяком случае, то, что я имею в виду разницы визуально разница между образами (скриншоты). Если у меня есть один скриншот с 5 значками в папке, а затем сделайте еще один снимок экрана с 1 значком больше, тогда я хочу, чтобы imgC отображал только этот новый значок.
Edit 2:
Разъяснение: Я хочу только разницу между 2 Скриншоты в новом образе.
Edit 3:
Какой-то код, который будет выглядеть как этот (код не работает):
private BufferedImage getImageDifference(BufferedImage img1, BufferedImage img2) {
if (img1.getWidth() == img2.getWidth() && img1.getHeight() == img2.getHeight()) {
BufferedImage img3 = new BufferedImage(img1.getHeight(), img1.getWidth(), img1.getType());
for (int x = 0; x < img1.getWidth(); x++) {
for (int y = 0; y < img1.getHeight(); y++) {
if (img1.getRGB(x, y) != img2.getRGB(x, y))
//return false;
img3.setRGB(x, y, img2.getRGB(x, y));
}
return img3;
}
} else {
return false;
}
}
какая разница? –
Почему это понижение -1? Это абсолютно законный вопрос! Невозможно спросить лучше, когда нет прежних знаний! Во всяком случае, я имею в виду различие - визуальная разница между изображениями (скриншотами). Если у меня есть один скриншот с 5 значками в папке, а затем сделайте еще один снимок экрана с 1 значком больше, тогда я хочу, чтобы imgC отображал только этот новый значок. –
Почему новый значок; почему бы не белые пиксели в том месте, где значок находится на другом скриншоте? (это также «разница»). Вы когда-нибудь видели алгоритм, который мог бы это сделать? –