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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 20:03   #1
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию пиксили

такой вопрос №1, есть картинка (*.bmp) перевожу ее в градации серого, получается 2 цвета,как с помощью перебора пикселей найти лицо и выделить его в квадрат?
делаю так:
Код:
const R = 50;

 with bm.Canvas do
  begin
    Brush.Style := bsClear;
    Pen.Color := clRed;
    Pen.Width := 2;
    Font.Color := clLime;
    Font.Style := [fsBold];
    Font.Size := 10;
  end;

var
  x, y, size, i, n: Integer;
  mas: PRGBTripleArray;
begin
SetLength(mas, bm.Height, bm.Width);//получаю размер
   for j:=0 to bm.Height-1 do
      for i:=0 to bm.Width-1 do
      if bm.Canvas.Pixels[i,j] = clBlack then
       begin
       for m:=0 to bm.Height-1 do
        for n:=0 to bm.Width-1 do
         if sqr(i-n)+sqr(j-m)-sqr(R) <1  then mas[m,n] := mas[m,n]+1;
        //
       end;

      for m:=0 to bm.Height-1 do
      for n:=0 to bm.Width-1 do
       if mas[m,n] > max then
        begin
        max := mas[m,n];
        y := m;
        x := n;
        end;
         Memo1.Lines.Add(format('x=%D,y=%D',[x,y]));
         Memo1.Lines.Add('size='+IntToStr(max));
             bm.Canvas.Rectangle(x - max div2 , y - max div2,
                        x + max div2 , y + max div2 );
end;
но с этого ничего не выходит,рисует квадрат но не так как хотелось (((

вопрос N2 : та же самая картинка,нахожу границы получается также 2 цвета(черный и белый) может здесь будет проще найти? вот собственно картинка

в принципе должно получится примерно так:

было бы еще замечательно если получилась вот так

ну это наверное после того как получится выделить лицо,нужно будет найти этот красный квадрат и с этими координатами скопировать в другой bitmap
casio23 вне форума Ответить с цитированием
Старый 26.05.2012, 21:34   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

В общем случае эта проблема при современном уровне развития науки и техники не разрешена.
Другими словами, если есть желание этим позаниматься, слежует ввести ряд упрощающих предположений.
Кроме того, есть подозрение, что с избавлением от цветовой составляющей мы теряем существенную часть информации и уменьшаем вероятность получения желаемого результата.
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 22:38   #3
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
с избавлением от цветовой составляющей мы теряем существенную часть информации и уменьшаем вероятность получения желаемого результата.
ну я бы не сказал, в большинстве пишут что для более лучшего распознания или нахождения области лица нужно переводить в градации серого.
casio23 вне форума Ответить с цитированием
Старый 26.05.2012, 22:47   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Это пишут применительно именно к лицу?
Или, все-таки, букв/цифр/автомобильных номеров?
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 23:40   #5
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

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


в Image1 нахожу лицо, распознает аданный алгоритм с ошибками не большими но работает ), а в Image2 копирую найденую область...


теперь осталось узнать как сравнивать лица?может налаживать картинку на картинку? подскажите плиз... что дальше делать?
casio23 вне форума Ответить с цитированием
Старый 26.05.2012, 23:58   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Обычно на лице выделяется ряд характерных точек, после чего результаты масштабируются и сравниваются с эталоном или между собой.
s-andriano вне форума Ответить с цитированием
Старый 27.05.2012, 00:08   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Обычно на лице выделяется ряд характерных точек, после чего результаты масштабируются и сравниваются с эталоном или между собой.
Цитата:
В общем случае эта проблема при современном уровне развития науки и техники не разрешена.
Ну счас наговорит . Уже давно и телефоны и фотоаппараты научились выделять лицо. Основная привязка делается к глазам (реже к носу) и далее уже второстепенные черты лица
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 27.05.2012, 00:28   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Ну счас наговорит . Уже давно и телефоны и фотоаппараты научились выделять лицо.
Вы умышленно проигнорировали "в общем случае"?
Ни один телефон или фотоаппарат не может безошибочно распознать лицо в любом ракурсе, при любом наклоне и в любых условиях освещения. Речь может идти исключительно о вероятности распознавания.
Да и эти алгоритмы разрабатывались десятилетиями. Так что ожидать быстрого прогресса в этой области вряд ли стоит.
s-andriano вне форума Ответить с цитированием
Старый 27.05.2012, 00:38   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Ни один телефон или фотоаппарат не может безошибочно распознать лицо в любом ракурсе, при любом наклоне и в любых условиях освещения.
Так и человек не может . Таким образом можно утверждать что всегда речь идет о вероятности распознания. Между тем скриншоты предоставленный ТС распознаются автоматически.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 27.05.2012, 09:53   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

И в чем тогда проблема?
s-andriano вне форума Ответить с цитированием
Ответ


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