Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.05.2008, 23:42
гость

 
Сообщений: n/a

Градиентный метод выделения границ на изображении
Может кто кинуть алгоритм градиентного метода поиска границ, желательно с исходником.
  #2  
Старый 07.01.2009, 11:51
Новичок

Отправить личное сообщение для unknown_coder Посмотреть профиль Найти все сообщения от unknown_coder
 
Регистрация: 07.01.2009
Сообщений: 2

Идея алгоритма в следующем. Совершается обход изображения и находится вектор градиента (пространственная производная), равный (dG/dx,dG/dy), где G - степень яркости, для каждой его точки. Дело в том, что чем больше перепад яркости, тем больше будет вектор градиента, и, анализируя его величину, мы можем судить о том, принадлежит ли точка фону или объекту на нем. Чтобы увеличить точность определения границ необходимо ввести порог. Если градиент в данной точке меньше величины порога, то значение точки обнуляется, если больше, приравнивается 1. После завершения работы алгоритма мы получим набор точек из 0 и 1, где 1 будет соответствовать границе контура.

Вот написанный мною код, реализующий (худо-бедно) этот алгоритм:

void scan(void)
{ int i,j;
for (i=1;i<h-1;i++)
for (j=1;j<v-1;j++)
{ gradh[i][j]=color_read(i,j)-color_read(i+1,j);
gradv[i][j]=color_read(i,j)-color_read(i,j+1);
gradient[i][j]=sqrt(pow(gradh[i][j],2)+pow(gradv[i][j],2));
}
for (i=0;i<h-1;i++)
for (j=0;j<v-1;j++)
{ if (gradient[i][j]>10) color_write(i,j,RGB(0,0,0));
else color_write(i,j,RGB(255,255,255));
}
return;
}

Сдесь h и v - размеры изображения по вертикали и горизонтали, ф-ии color_read и color_write понятны из названия.
if (gradient[i][j]>10) - 10 здесь является порогом, однако для его нахождения лучше применить конкретный алгоритм, коих много.
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод ветвей и границ незарегистрированный Реализация, исходники, языки 4 26.04.2009 10:34
Поиск самолетов на изображении гость Обработка изображений, звук, графика 1 28.05.2008 20:25
Как в бинарном изображении подсчитать количество объектов. public_static_void Обработка изображений, звук, графика 1 11.05.2008 14:53
Метод Ветвей и Границ (на С++) TORERO Реализация, исходники, языки 2 12.12.2007 20:09
распределение по размеру элементов на изображении Mad Mike Обработка изображений, звук, графика 1 11.02.2007 13:04