Мне нужно найти квадраты на изображении, используя OpenCV (нет проблем в Matlab или любой другой, как правило, я ожидаю, что некоторые идеи).
Рассмотрим тестовое изображение ниже:
Мне нужно точно найти эти цветные квадраты на изображении выше (не белые длинные полосы).
Что я сделал :
Я применил общий метод (который поставляется с образцами OpenCV), т.е. найти контуры во всех цветовых плоскостях, приблизить его и проверить количество элементов = 4. Это работает до некоторой степени, что несколько квадратов обнаружены, особенно темные.
Следующим шагом я сделал прогноз . т.е. это расположение является фиксированным . Так что, если некоторые получены, я могу предсказать оставшиеся. Это также сработало в некоторой степени. Но точность была очень плохой.
Но я чувствую, что предсказание здесь не очень хороший метод, и он не всегда дает точные ответы в соответствии с первым шагом.
Что мне нужно :
1) Есть ли другие лучшие методы для более точного определения этих квадратов? Или несколько методов?
Важным моментом является то, что время здесь не проблема . Алгоритм может быть медленным, это не имеет значения. Но точность является основным критерием.
Иногда изображения могут быть гораздо более размытыми.
И одна из основных проблем, с которыми я столкнулся, заключается в том, что некоторые квадраты имеют почти такой же цвет, как и фон (проверьте столбец 3 первого и второго квадратов).
Ищете идеи, заранее спасибо
ОБНОВИТЬ :
Ниже приведен максимально точный результат, который я получил:
Конечно, результирующее изображение немного изменено.
ОБНОВЛЕНИЕ 2:
Я дал намного более лучшее решение в своем ответе ниже: https://dsp.stackexchange.com/a/7526/818