Форум: "Прочее";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Внизнаклон линии Найти похожие ветки
← →
Tirael © (2007-01-13 04:45) [0]есть картинка бмп на белом фоне черная линия, толщиной неск пикселов (произвольно) есть ли простой способ определить угол наклона этой лини к горизонтали? хотябы приблизительный алгоритмик плиз, или ссылку где почитать
← →
MikePetrichenko © (2007-01-13 04:51) [1]Есть. Почитать учебник геометрии. Школьный курс. Алгебра. Тот же школьный курс (чтобы функию линии по ее точкам построить)
← →
Tirael © (2007-01-13 04:53) [2]
> MikePetrichenko © (13.01.07 04:51) [1]
злой ты... где ж этот учебник то достать )))
а если серьезно то проблема в том, что, как я писал, линия произвольной толщины... и точки ее понятие относительное. например выбрав неск пикселов поперек линии, тоже получим линию, но не ту что нужно (
← →
MikePetrichenko © (2007-01-13 04:56) [3]Написал. Покурил. Вспомнил. Алгебра не нужна. Достаточно теоремы Пифагора из Геометрии.
> а если серьезно то проблема в том, что, как я писал, линия
> произвольной толщины... и точки ее понятие относительное.
> например выбрав неск пикселов поперек линии, тоже получим
> линию, но не ту что нужно (
Какая разница какой она толщены? Учи сейчас (если раньше не учил) теорему Пифагора и будет тебе счатье.
← →
Tirael © (2007-01-13 04:58) [4]
> MikePetrichenko © (13.01.07 04:56) [3]
кто то из нас уже спит... ибо проблема сводится к определению точки начала и точки конца этой линии... а вот как это сделать...
← →
MikePetrichenko © (2007-01-13 04:58) [5]Да! Алгоритм:
1. Принять за начало координат нижний левый угол картинки
2. Сдвинуть начало координат так, что бы начало линии совпадало с точкой (0, 0) - так проще считать.
3. Опустить из произвольной точки на линии перпендикуляр на ось Х.
4. В получившемся прямоугольном треугольнике найти угол между катетом и гепатенузой по теореме Пифагора.
← →
MikePetrichenko © (2007-01-13 05:00) [6]
> кто то из нас уже спит... ибо проблема сводится к определению
> точки начала и точки конца этой линии... а вот как это сделать.
> ..
Вопрос стоял про угол, а не про распознавание линии на картинке, что тоже не большая проблема, если картинка контрастная.
← →
Tirael © (2007-01-13 05:03) [7]
> Вопрос стоял про угол, а не про распознавание линии на картинке
>
ну я не знаю как еще вопрос задать... я написал исходные данные: картинка, линия... если б было все так просто то я б и не спрашивал
← →
MikePetrichenko © (2007-01-13 05:04) [8]
> линия произвольной толщины
Да. И еще. Если смущает ее толщина. Представь ее как кучу тонких параллельных линий. Угол наклона у всех будет одинаков.
← →
Tirael © (2007-01-13 05:05) [9]
> что тоже не большая проблема, если картинка контрастная.
еще какая контрастная, я ж писал, черное на белом, тока вот алгоритмик бы...
← →
Tirael © (2007-01-13 05:06) [10]
> Да. И еще. Если смущает ее толщина. Представь ее как кучу
> тонких параллельных линий. Угол наклона у всех будет одинаков.
>
так вот как найти ее? и как не ошибиться. приняв за начало начало одной тонкой линии, а за конец конец какойто другой...
← →
MikePetrichenko © (2007-01-13 05:07) [11]Алгоритмик:
1. Открыть файл.
2. Цикл по иксу
3. Цикл по игреку
5. если белый пиксел - к следующему пикселю
6. черный - запомнили координаты в массив
7. идем дальше (но уже не запоминаем координаты) до первого белого.
8. повторить по всей картинке.
Дальще сам. Проще паренной репы.
← →
MikePetrichenko © (2007-01-13 05:09) [12]
> 7. идем дальше (но уже не запоминаем координаты) до первого
> белого.
Хотя это и не обязательно, можно подниматься (или спускаться) на следующую игрек координату.
В результате получишь массив координат левой паралелли (грани твоего четырехугольника, представляющего твою линию).
Потом определить верхнюю и нижнюю точку линии (или 0, 0 и лубую другую координату) ну и Пифагор рулит.
← →
Tirael © (2007-01-13 05:09) [13]
> Проще паренной репы.
хех, попробуй нарисовать на листочке... только эту линию для понимания нарисуй как прямоугольник... и прикинь какую фигню ты написал :(
← →
Tirael © (2007-01-13 05:11) [14]пардон. поправлюсь, это не линия а отрезок...
← →
MikePetrichenko © (2007-01-13 05:13) [15]
> хех, попробуй нарисовать на листочке... только эту линию
> для понимания нарисуй как прямоугольник... и прикинь какую
> фигню ты написал :(
Братка, ты тормоз? В школе геометрию учил? какая пофиг разница - линия, прямоугольник или что.
Меняй профессию или в хоз. маг.
P.S. Сколько раз зарекался стажерам помогать. Нет же...
← →
Tirael © (2007-01-13 05:24) [16]
> Братка, ты тормоз?
нарисуй, мысленно выполни свой алгоритм, а потом сжав зубы сам признай тут что тормоз ты...
← →
MikePetrichenko © (2007-01-13 05:32) [17]Чукча - писатель?
Еще раз. Для особо одаренных. Другими словами, если попутно отсутствию знаний геометрии тяжко уловить смысл алгоритма.
Берешь листок. Рисуешь на нем ЖИРНУЮ линию.
Далее. Берешь и начиная с левого нижнего угла просматриваешь листок. Как только накнулся на черную точку (по умолчанию считаем что листок белый а линия черная) запоминаешь ее координаты. Если дошел до конца листа но черной точки не нашел, то
Поднимаешься на одну точку вверх. Повторяешь то что написано выше до тех пор пока не достигнешь верхнего края листа.
У тебя получился массив точек, описывающих левую грань твоей линии (четырехугольника).
Далее. Для большей точности. Так как изображение линии будет ступенчатым хорошо бы получить фнукции для данного набора точек. Она будет точно описывать требуемую линию (почему точно - догадайся сам).
Далее. Линия, описываемая данной функцие будет являться гепотенузой прямоугольного треугольника (если из ее произвольной точки опустить перпендикуляр на ось Х). Тебе нужно найти угол между этой гипотенузой и катетом (катет - ось Х).
Если опять не понял - медецина бессильна - в хоз маг.
← →
Tirael © (2007-01-13 05:42) [18]
> MikePetrichenko © (13.01.07 05:32) [17]
> Чукча - писатель?
ты сам решил что ты такой умный или сказал кто? пожалуйста не разводи оофтоп, ибо мне нужен всетаки ответ на вопрос, если ты не знаешь то может другие помогут...
а для особо одаренных, не умеющих рисовать вот сцылочка:
http://img108.imagevenue.com/img.php?image=56053_123_122_454lo.JPG
по твоему алгоритму найдется линия А-В, которая не то что нужно...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c