Java

Графика на джава

Нужно написать прогу, которая бы отличала (явный) фон от (явного) обекта на картинке
К примеру, на фоне в шахматную доску но вместо черных квадратов светло серые, а обекти черные, или красные или светло оранжевые или и т. д.

Подкиньте идею как делать. Какой логике следовать? Как можно отличить фон если он не с одного цвета состоит?
добро пожаловать в компьютерное зрение
java тут вообще ни при чём, алгоритмы везде одни и те же

для начала конкретизируй задачу
что нам известно, кроме самой картинки, и что требуется найти?
Алексей Климов
Алексей Климов
51 164
Лучший ответ
Юрий Лебедев дано картинку с фоном и явными обектами на ней и явным фоно, должен узнать сколько есть обектов на картинке
Юрий Лебедев ничего, известно что ето не сложный фон типу джунглей і не сложные обекты, все как в примере выше, фон может быть любых цветов или даже не цветов а прозрачности, но он будет +- равномерен (как в примере). Обекти тоже явные, типу пляма какаято или квадрат или круг, цвет обектов тоже равномерен +- и одинаков, чорные припустим, или в клеточку если фон не в клеточку, ето не настолько сложние картинки как в окулиста на дальтонизм, тут не сложные картинки
Данияр Кенесов При чем тут КЗ?
Данияр Кенесов Ок, открываем наш небезызвестный "авторитетный" источник и читаем: Компьютерное зрение — теория и технология создания машин, которые могут производить обнаружение, отслеживание и классификацию объектов.
Здесь же мы можем вычитать одну особенность: Одним из важнейших фактов является то, что для компьютерного зрения нет стандартной формулировки того, как должна решаться проблема. То есть задачи КЗ относятся к области искусственного интеллекта.
Вот я и подумал, где вы здесь увидели необходимость использования ИИ?
Данияр Кенесов да и потом, если бы мне например сказал какой нибудь кандидат физ мат о том, что компьютерное зрение это раздел искусственного интеллекта, я бы ему тот час же поверил. Не знаю как вы. Вы наверное привыкли никому не доверять
Данияр Кенесов С почти схожими но различающимися тоже все просто - определить граничное значение их схожести/разности, а затем вычесть один цвет из другого (цвета желательно привести к оттенком серого)
Данияр Кенесов И нет здесь никаких задач, решаемых ИИ
Тут самый главный вопрос стоит в том, что считать за фон, а что за объект. Если допустим по определению кол-во пикселей фона всегда больше кол-ва пикселей самого объекта, то тогда нам нужно сначала определить кол-во тех и тех и сравнить.

Если же, как вы далее утверждаете, фон состоит не из одного цвета, а

а) фон состоит из похожих пикселей, отличающихся на незначительную величину (разность)

б) фон состоит из довольно отличающихся оттенков или цветов, например красный и оранжевый

Тут также нужно подсчитать кол-во пикселей всех цветов, а затем сравнить. Только в первом случае необходимо будет определить граничное значение разности - порог, при котором пиксели можно считать различными. Во втором случае возникает неопределенность, какие пиксели считать фоновыми, а какие нет. Здесь нужно руководствоваться не принципом больше/меньше, а вычислять процентные содержания пикселей каждого цвета на изображении и согласно заранее установленным директивам, определять что есть фон а что нет.

Также случаи (а) и (б) могут сочетаться в один, все зависит от конкретного изображения.

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