Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Вниз

Графика   Найти похожие ветки 

 
AlekseyK   (2002-11-05 16:57) [0]

Привет. Скажите пожалуйста, возможно ли реализовать следующую задачу:
имеется отсканированный лист, на котором ручками (разных цветов или оттенков) проведены линии. Требуется определить линия какого цвета проведена сверху.
На глаз всегда кажется, что линия темного оттенка находится поверх.
Спасибо.


 
LongIsland   (2002-11-06 15:29) [1]

На мой взгляд можно попробовать следующий подход

1. Создется массив записей коэффициентов уравнений линии разного цвета. Что-то вроде
TRec = record
a: Double;
b: Double;
Color: TColor;
Flag: Integer;
end;

TLines = array of TRec;

2. Сканируется лист на предмет наличия разных цветов (их лучше задавать в каком-то диапазоне).

3. Определяется каждая линия и заполняется массив.

4. Ищется пиксель пересечения каждой линии с каждой (простейшая математика), если они вообще пересекаются и определяется его цвет.

5. Полю Flag некоторой (например, первой найденной в массиве линии) присваиваем любое целочисленное значение.

6. Для прочих линий, если они сверху (п.4), то Flag будет больше на единицу, чем у той, на которой она лежит и наоборот.

7. Теперь сортируем массив и определяем, что лежит сверху (максимальный Flag).

Здесь прежде всего то, что может быть примерно такая ситуация с линиями


| |
-|-----------
| |
| |
| |
| |
| |
| |
-----------|-
| |


Надеюсь понятно, что здесь нарисовано. Может случиться так, что НИ ОДНА линия не будет сверху. Это надо учесть.

Алгоритм все-равно очень сложный, но надеюсь, что я дал хоть примерное направление. Удачи!



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
14-63732
Jaxtor
2003-01-31 12:04
2003.02.20
Реальность уехать заграницу


1-63643
Кило
2003-02-11 10:00
2003.02.20
Как сделать часть надписи Bold-ом?


1-63638
Sour
2003-02-09 08:04
2003.02.20
Drag&Drop


14-63824
Zombie
2003-02-04 13:12
2003.02.20
CRACK please...


6-63719
APTEMKA
2003-01-01 16:07
2003.02.20
Какое ИМЯ ПОЛЬЗОВАТЕЛЯ в стандартной звонилке сейчас активно?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский