Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2010, 18:23   #1
IWTK
 
Регистрация: 28.07.2009
Сообщений: 4
По умолчанию Цифры с картинки по известному шрифту.

Привет Всем. Вот сейчас стоит задача достать цифры с картинки.
Картинка простая почти. Содержит фон и белые цифры. В фоне от 4 до 10 цветов.
Прочитал кучу тем по этому поводу, но все хотят достать текст из каптчи, которую глазом еле распознаешь, да и потом еще при в воде не правильно вводишь. Я решил попробовать поработать с более быстрым на мой взгляд способом. Не сравнивать с шаблонами цифр, а переделать имеющуюся картинку. Подскажите как можно сделать следующее:
1. Подгрузить картинку в буфер или еще куда, и сделать ее черно белой, т.е. допустим фон белый а цифры черные, либо наоборот.
2. Потом мне ее надо нарисовать на другом окне, это я умею, вот только желательно нарисовать ее с прозрачностью фона, т.е. что бы фон был прозрачный, а цифры были полностью видны как надо.

Надеюсь на Вашу помощь. Заранее всем очень признателен.
Не бейте ногами я всего лишь учусь.
IWTK вне форума Ответить с цитированием
Старый 11.04.2010, 13:40   #2
IWTK
 
Регистрация: 28.07.2009
Сообщений: 4
По умолчанию

Ну раз тут никто ни чего не пишет напишу я.
Нашел функцию которая делает инверсию цветов.
Код:
function InvertBitmap(Bmp: TBitmap): TBitmap;   
var  
  x, y: integer;   
  ByteArray: PByteArray;   
begin  
  Bmp.PixelFormat := pf24Bit;   
  for y := 0 to Bmp.Height - 1 do  
  begin  
    ByteArray := Bmp.ScanLine[y];   
    for x := 0 to Bmp.Width * 3 - 1 do  
    begin  
      ByteArray[x] := 255 - ByteArray[x];   
    end;   
  end;   
  Result := Bmp;   
end;

Пример использования.
Image1.Picture.Bitmap := InvertBitmap(Image1.Picture.Bitmap);

Автор: Song
Делает именно инверсию, а мне нужно сделать черное белую. Думаю небольшое изменение этой функции решит вопрос.

Может теперь кто то что то поможет.
Не бейте ногами я всего лишь учусь.

Последний раз редактировалось IWTK; 11.04.2010 в 13:43.
IWTK вне форума Ответить с цитированием
Старый 11.04.2010, 13:45   #3
IWTK
 
Регистрация: 28.07.2009
Сообщений: 4
По умолчанию

Да пожалуйста объясните что именно в этой функции происходит. Если можно поподробней и построчно.
Не бейте ногами я всего лишь учусь.
IWTK вне форума Ответить с цитированием
Старый 11.04.2010, 14:43   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот посмотри эти темы, может быть может:
1
2
3
4
А также попробуй еще поискать по лову "Распознавание".
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти запись по известному внешнему ключу? Илья Сергеевич БД в Delphi 8 04.01.2010 15:30
Шестнадцатеричные цифры Olejik Общие вопросы C/C++ 4 04.06.2009 22:27
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42
Как в коде VBA возвратить путь к заранее известному файлу? Maxx Microsoft Office Excel 4 19.11.2008 13:17
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54