![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Распознование изображений
Макс1 © (2003-01-03 15:01:00)Я пишу программу по распознованию изображений (например текста или рисунков). Если рисовать непосредственно в Delphi, то все очень просто: смотрим какие пискели черного цвета и далее пропускаем через алгоритм распознавания. Но я не знаю как распознавать отсканированное изображение: там цвета не точные (не точно черные и не точно белые). Подскажите пожалуйста, кто знает, как можно эту проблему решить??? Заранее благодарен !!!
Mihey (2003-01-05 20:34:00) [1]Кстати, по поводу распознавание изображении. Поищи через поисковик файл neuro40, запрограммированный человеком с ником imp. Там распознавание по образам.
KA_ (2003-01-05 09:54:00) [2]Но опять же если цвета нужны - распознаешь цветные рисунки - то нужно использовать медианную фильтрацию. Суть ее в том, что значения составляющих RGB одного пикселя усредняются по области вокруг него с какими-то коэффициентами.
KA_ (2003-01-05 09:46:00) [3]Интенсивность это корень суммы квадратов составляющих по RGB : E = sqrt(R*R + G*G + B*B).
Т.е. рассмотрим красный пиксель - его составляющие R=255 G=0 B=0
след. и его интенсивность = 255 :^)
Т.е. в зависимости от формата пикселя (24 бита, 8 бит и т.п.) получаем значения составляющих и вычисляем это E, а далее нормируем - делим на sqrt(3 * 255 * 255). Так и получим интенсивность от 0 до 1.
Макс1 (2003-01-05 00:05:00) [4]Нет, там не RGB (которые кстати - натуральные числа), а написано так:
Пусть мы имеем изображение в оттенках серого , интенсивность точек которого может принимать произвольные значения от 0 до 1. Первый самый простой алгоритм – это усечение. Все пиксели с
яркостью больше 0.5 получают яркость 1 (черный цвет), все остальные – яркость 0 (белый).
Может быть я чего-то недопонимаю. Объясните, пожалуйста, если кто знает в чем тут суть.
Mihey (2003-01-04 21:13:00) [5]Интенсивность цвета? В смысле, значения R, G и B цвета? Для это есть функции:
GetRValue(Color);
GetBValue(Color);
GetGValue(Color);
где Color - это переменная типа TColor.
Макс1 (2003-01-04 19:22:00) [6]Большое спасибо за помощь!
Я почитал и насколько понял там используется интенсивность цвета, которая должна изменяться от 0 до 1. Как можно в Delphi её изъять???
KA_ (2003-01-04 10:34:00) [7]И вот еще ссылка: http://sevgtu.narod.ru/min/chapter3.htm
KA_ (2003-01-04 10:19:00) [8]Существует множество способов, например, медианная фильтрация.
А почитать можно на и русском http://www.graphicon.ru:8100/courses/cg02b/library/dspcourse.pdf
Mihey (2003-01-03 22:46:00) [9]Самое простое - это сделать изображение чёрно-белым (не grayscale). Работе с изображениями учит сайт http://www.efg2.com.