Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
6-63714
Pollucs
2002-12-25 13:44
2003.02.20
Ребята , подскажите пожалуйста .


1-63622
iNew
2003-02-11 09:42
2003.02.20
Возможно ли и если да то как переименовать уже запущенный


14-63791
трям
2003-02-03 11:50
2003.02.20
HDD


1-63652
Serg11
2003-02-11 22:08
2003.02.20
как рисовать на *.jpg


14-63792
Tio
2003-02-02 23:17
2003.02.20
Windows 2000 и интернет




   Наверх