Программирование приложений на android
Создана: 31 Октября 2011 Пон 13:25:33.
Раздел: "Компьютерный раздел"
Сообщений в теме: 223, просмотров: 34613
-
Детектор Кенни
[внешняя ссылка]
[внешняя ссылка]
[внешняя ссылка]
[внешняя ссылка]
Алгоритм выделения краев Canny сначала сглаживает изображение, чтобы устранить шум.
Далее он находит градиент изображения чтобы подсветить области с высокими пространственными производными.
Далее алгоритм проходит по этим областям и подавляет все пиксели, которые не в максимуме (немаксимальное подавление).
Градиентный массив далее уменьшается гистерезисом. Гистерезис используется, чтобы отследить оставшиеся пиксели, которые не были подавлены.
Гистерезис использует два порога и если величина ниже первого порога, то она устанавливается в ноль (делается не краевой).
Если величина выше высокого порога, она делается краевой.
И если величина между этими 2 порогами, то она установливается в ноль, в том случае если нет пути от этого пиксела к пикселю с градиентом выше T2
*************
Алгоритм подавления немаксимальных пикселов
Во время обработки картинки с помощью оператора Собеля строим две матрицы. В одну записываем значения градиента в точке, в другую значение угла тета
Потом проходим по матрице со значениями угла и в зависимости от его значения сравниваем значения градиента в точке со значениями градиента в соседних пикселах -
может сперва научить(ся) на(о)девать android ?
для членов кружка )))
почти что снятое с производства ведро с болтами ):
`Железа` нет, есть то, что вы хотите.
Способ реализации своих желаний, предложенный в теме кривоват, имхо.
Не, ну понятно - железо приходит и уходит, а android будет всегда.
Ведь если есть android пофик на железо - не так ли ?
А бывает - просто пофик на железо ?
Как минимум - `привязываете` к оСи, осознанно-неосознанно значения не имеет.
Переучивать потом кто будет ?! Пушкин ?!
Хотя... пользователей должно быть много ))) и пользователь должен быть таким, каким его хотят видеть, из androida )
И главное - вы продуктивно работаете в этом направлении ))) крестики-нолики это нормально.
karaganda писал: Не, не привязываю к "оси". Тут в основном на java все пишется
А есть разница ?! Понятно, что разницы нет, для приложений на java, но ведь она, на самом деле, есть.
Си или не Си ?! Это про оСи )
Java очень помогает ))) помогать пользователю )
Пользователь сам соберёт, что ему надо. Свобода от `железа`, как бы )))
Ну да ладно, пользователь сам выберет себе `оковы`, железные или ...
простите мой сарказм -
Алгоритм Кенни. Нахождение направления края. Подавление "немаксимумов"
Пусть заданы две матрицы. В одной находятся значения градиента в точке, в другой угол градиента к оси Х
Надо подавить "немаксимальные" пикселы , т.е. присвоить им нулевые значения. Способ подавления простой - если соседи имеют большое значение чем ткущий пиксел, то он "подавляется"
Порядок
1. Проходим массив градиентов построчно. Если значение пикселя не ноль, смотрим соответствующее ему направление градиента. Всего четыре значения - 0, 1, 2, 3
2. Если угол равен нулю, то сравниваем значения градиентов справа и слева со значением в текущей точке
3. Если один, то соседей по диагонали из правого нижнего угла в левый верхний
4. Если два, то соседей справа и слева по горизонтали
5. Если три, то соседей по другой диагонали -
Вот процедура для нахождения градиента и угла градиента к оси Х
Код:
for (int m=1; m < 179; m++){
for (int n=1; n < 39; n++){
int Gx = a[m-1][n-1] + 2*a[m][n-1] + a[m+1][n-1] - (a[m-1][n+1]+2*a[m][n+1]+a[m+1][n+1]);
int Gy = a[m-1][n-1] + 2*a[m-1][n] + a[m-1][n+1] - (a[m+1][n-1]+2*a[m+1][n]+a[m+1][n+1]);
if (Gx != 0) {
// Math.atan возвращает угол в радианах
double t = Math.atan(Gy/Gx)*180/Math.PI;
if (t <= 22.5 & t >= -22.5) f=0; // 0
if (t > 22.5 & t <= 67.5) f = 1;// 45
if (t > 67.5 | t <= -67.5) f = 2;// 90
if (t > -67.5 & t < -22.5) f = 3; // 135
}
else
{ if (Gy == 0) f = 0; else f = 2 ;
}
c[m-1][n-1] = f;
b[m-1][n-1] = 255-(Math.abs(Gx) + Math.abs(Gy))/4;
}}
Порядок расчета угла teta (угол наклона градиента к оси Х)
teta = invtan(Gy/Gx)
Поскольку Gx стоит в знаменателе дроби, он не может иметь значение ноль, иначе неопределенность
Если он равен нулю, тогда исследуем значение Gy. Если Gy = 0, тогда teta равно нулю, если Gy не равен нулю, тогда значение teta равно 90 градусов.
Если Gx не равно нулю, тогда нужно исследовать разные случаи. Если использовать для вычисления угла функцию arctg, то получаем следующие интервалы
1. Если teta меньше или равна 22.5 и больше или равна -22.5 тогда значение teta принимается равным нулю
2. Если teta больше 22.5 и меньше или равна 67.5 тогда значение teta принимается равным 45 градусам
3. Если teta больше 67.5 или меньше или равна -67.5 тогда значение teta принимается равным 90 градусам
4. Если teta больше -67.5 и меньше -22.5 тогда значение teta принимается равным 135 градусам
Обозначим 0 градусов как 0, 45 градусов как 1, 90 как 2 и 135 как 3
Все -
Определен список участников, прошедших во второй тур конкурса летающих роботов, организованного компанией КРОК. По итогам первой контрольной точки, в гонке остается 150 команд и 87 индивидуальных участников. В марте, мае и июле участники должны будут пройти еще три контрольные точки, а финальное соревнование состоится в августе 2013 года. Главный приз конкурса – 1 000 000 рублей*
[внешняя ссылка]
------------
Жил Александр Херцевич, еврейский музыкант
Он Шуберта наверчивал, как чистый бриллиант -
puku0x обновил свой проект cvdrone. Библиотеки используемые для работы с изображениями и для работы с видео обновил и изменил код класса ardrone для работы с новыми библиотеками. Добавлена новая структура данных в описание пакета навигационных данных для работы с GPS
[внешняя ссылка] -
Внимание, набираю команду для участия в соревнованиях типа "Летающие роботы"
Нужны программисты, которые смогут писать программы по управлению роботом и его ориентированию в пространстве по датчикам различным, в первую очередь подразумевается обработка видео с целью определения маршрута и текущего положения робота
Используемое устройство - AR.Drone 2.0
ПО - Visual C++ и и проект Puku
Условия конкурса [внешняя ссылка]
Обсуждение различных проблем связанных с проведением конкурса
[внешняя ссылка]
Мои темы связанные с программированием летающих роботов
[внешняя ссылка]