Это не то, что вы должны начать в Java.Когда у меня возникали проблемы такого рода, я начинал с Matlab (библиотека OpenCV) или чего-то подобного, проверял, будет ли решение работать там, а затем переносил его на Java.
Чтобы ответить на ваш вопрос, я сделал нечто похожее с помощью XOR-связать «эталонное» изображение (без ящика в вашем случае) с текущим изображением, а затем либо поработать над гистограммой (кластеризованные пиксели справа означают большую разницу), либо просто сложить видимые пиксели и сравнить их с порогом.XOR не совсем точный, но быстрый.
Я хочу сказать, что мне потребовалось 2 часа, чтобы установить Scilab и наборы инструментов и написать подтверждение концепции.Это заняло бы у меня два дня в Java, и если бы первое решение не работало с каждым дополнительным алгоритмом (уже сделанным в Mat- / Scilab), еще несколько часов.ИМХО, вы подходите к проблеме с неправильной точки зрения.
Если на самом деле Java / C ++ - это просто простые инструменты, которые не имеют значения, отбросьте их и используйте Scilab или какой-нибудь другой клон Matlab - прототипирование и точная настройка будутнамного быстрее.