Метод действительно хорош. Однажды решал задачу подсчета областей (и их объема) в 3d-текстуре. В конце концов все точно также свелось к добавлению трехмерной сетки и проверке одинаковости цвета пикселей в ее узлах. Работало оно до ужаса медленно из-за очень большой точности сетки, но объем работ был не очень большой, так что CUDA в дело не пошла. А теперь уже все равно, как мне, так и заказчикам.
Вечером приду домой, откопаю исходники, буду читать и много думать. =)
Знаю человека во Франкфурте, который предлагал позицию у себя за подсчёт энтропии системы частиц. Могу дать контакты и задание, вроде они так и не сделали это.
Я про <a href='http://www.google.com.ua/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http%3A%2F%2Fcmp.felk.cvut.cz%2F~hlavac%2FTeachPresEn%2F11ImageProc%2F83CornersTalk.pdf&rct=j&q=schlesinger's%20corner%20representation&ei=Aj_lTZT8IMnQsgaTr9yXDQ&usg=AFQjCNG2cLbzF-asQ3SiQ7j-6-D8wg2amQ&sig2=aNJsZ2T8DW85J-6YBnFnkQ'>это (не знаю как правильно называется, что-то типа производной по изображению).
Получается, что пройти все пиксели нужно только один раз для нахождения уголков, а далее работать можно только с совокупностью уголков, которых на порядок меньше чем пикселей. Ну и много преимуществ, например, прощадь фигур можно вычислять чуть ли не бесплатно и тп
Честно говоря, не знаю в чем уникальность метода. В принципе — просто «паралельный вариант».
На счет объединения двух контактных областей в одну — надо делать тоже с помощью cuda. Процесс с областью (i,j) проверяет на контактность с областями справа (i,j+1) и снизу (i+1,j). Значительно сократите время на «сливание» областей.
И еще, как мне кажется, проще сделать прослойку в виде дескрипторов. Скажем, если замеченно, что область с цветом A контачит с цветом B, то они ссылаются на один дескриптор. По идее — наборов разных светов в одной области будет не велико, и метод с дескрипторами может помочь.
«Дескриптор» это достаточно условное название. Просто — промежуточное звено. Можно провести аналог с палитрой. Номер каждого региона после первого прохода это номер ячейки в палитре. При слиянии регионов для соответсвующих ячеек устанавливается одно значение (только еще надо проверить, что все ячейки с объединящимися значениями получат новое ).
Сверхбыстрая разметка изображений