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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 12:16   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Не обязательно по шаблону, можно проводить анализ цифр по выбранным точкам. Допустим у нуля в центре нет точки, и если там пиксель белого цвета, значит перед Вами однозначно не нуль. В общем для данного шрифта можно подобрать такое количество и расположение точек, которые бы однозначно указывали, что за цифра перед Вами. Примерно такой алгоритм. А вот со ржавчиной могут быть серьезные проблемы...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 05.08.2009, 12:26   #12
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

Всем спасибо за отклик, но самая главная проблема в том, что с графикой я никогда не работал (((
Georgios вне форума Ответить с цитированием
Старый 05.08.2009, 12:27   #13
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Можно попробовать так побороть ржавчину:
Код:
Если этот пиксель не белый, а его соседи белые, то закрасить этот пиксель белым
//---------------------------
Цитата:
что с графикой я никогда не работал (((
Компонент TImage.
Код:
Image1.AutoSize=true;
if OpenPictureDialog1.Execute()then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
И так далее.

Последний раз редактировалось Levsha100; 05.08.2009 в 12:33.
Levsha100 вне форума Ответить с цитированием
Старый 05.08.2009, 12:31   #14
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

А как работать с пикселами вообще?
Georgios вне форума Ответить с цитированием
Старый 05.08.2009, 12:33   #15
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Почитай и поищи примеры распознования образов при помощи нейронных сетей. Очень много инфы, особенно на английском. И где-то я видел исходники проги, которая как раз распознавала номера на контенерах.
Hollander вне форума Ответить с цитированием
Старый 05.08.2009, 12:38   #16
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Почитай и поищи примеры распознования образов при помощи нейронных сетей. Очень много инфы, особенно на английском. И где-то я видел исходники проги, которая как раз распознавала номера на контенерах.
Hollander, а где видел?
Georgios вне форума Ответить с цитированием
Старый 05.08.2009, 12:58   #17
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Вот набросал примерчик:
Код:
const
MaxX=620;
MaxY=465;
var
  Form1: TForm1;
  ImgArray: array[0..620,0..465]of boolean;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute()then
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
function convert(R,G,B:byte):boolean ;
var
i:integer;
begin
 i:=R+G+B;
 if i>127 then convert:=true else convert:=false;
 
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i,j :integer;
R,G,B:byte;
begin
 for j  := 0 to MaxY do
    for I := 0 to MaxX do
    begin
      R:=GetRValue(Image1.Canvas.Pixels[i,j]);
      G:=GetGValue(Image1.Canvas.Pixels[i,j]);
      B:=GetBValue(Image1.Canvas.Pixels[i,j]);
      ImgArray[i,j]:=convert(R,G,B);
    end;
end;
Вложения
Тип файла: rar primer.rar (4.4 Кб, 122 просмотров)
Levsha100 вне форума Ответить с цитированием
Старый 05.08.2009, 13:03   #18
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

Прочитал...вашу теме...интересная правда но вы не много в другом направлении ...мне так кажеться.......
1.Вот точто осталось от Фотошопа...(цифры на белом фоне)
2.Есть прога распознает текст (сканер,фото) переводит текстовй файл.
3.Сохранить файл с доступным расширением для работы не
посредственно со строками, числами(это уж не важно)

Последний раз редактировалось Doholyan; 05.08.2009 в 13:07.
Doholyan вне форума Ответить с цитированием
Старый 05.08.2009, 13:10   #19
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Самая главная проблема не с графикой,а с распознованием цифр.Вообщем на эту тему есть работы Игоря Львовича Ероша.На сколько помню из лекций,вариантов много есть и их надо вместе использовать.Сам немного практиковался и больше всего понравился способ площадей букв.То есть у разных букв разная площадь,то есть количество пикселей.Считаем,сравниваем с эталон,далее или нейронная сеть,или нахождение наиболее близкого значения,и аля мы распознали =)
bondik вне форума Ответить с цитированием
Старый 05.08.2009, 13:27   #20
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

Цитата:
Сообщение от Levsha100 Посмотреть сообщение
Вот набросал примерчик
Массив ImgArray, как я понял, показывает где необходимо произвести замену цвета пикселя, так?
Georgios вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать надпись на фотографии? Андрей79 HTML и CSS 9 25.04.2009 19:15
Подскажите: как с изображения распознать цифру? Nikolay-niw32 Общие вопросы Delphi 11 07.02.2009 22:32
Как востановить фотографии с флешки в 2ГБ miniSD Easyman Компьютерное железо 2 30.07.2008 13:45
как серверу INDY распознать клиента мандарин Работа с сетью в Delphi 2 24.10.2007 13:31
Как распознать 2 мыши sin Gamedev - cоздание игр: Unity, OpenGL, DirectX 16 11.04.2007 21:31