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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 18:38   #11
Tolik_P
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 11
По умолчанию

Заменил значения RGB в рисунках таким методом: значениям от и до
0..30 - присвоил значение 0
31..120 - значение 70
121..220 - значение 150
221..255 - значение 255
Теперь искомое изображение и ответ очень похожи друг на друга. Но вот как его найти ((((
Tolik_P вне форума Ответить с цитированием
Старый 23.03.2010, 09:44   #12
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Попробуй как я предлагал, конвертируй в YCbCr и по хроматическим компонентам построй гистограмму, наглядно будет видно, что я имел ввиду. Теоретически достаточно будет проверить на сколько отличается гистограмма.
x128 вне форума Ответить с цитированием
Старый 25.03.2010, 12:42   #13
koshel
Пользователь
 
Аватар для koshel
 
Регистрация: 03.02.2010
Сообщений: 38
По умолчанию

Я сейчас тоже пытаюсь понять как сравнивать например фото из паспортов. один мой знакоми(опытний в отличии от меня) сказал что нужно все изображения переделать не только под один размер а и перегнать из RGB в grayscale, а потом по формулам в которих есть коєфициент схожести сравнивать фото. формулы у меня есть но написаные от руки. найду в електроном виде сброшу.
в grayscale я переделываю так:
Код:
var
  i,j:integer;
  ptr:PByteArray;
begin
  try
    for i:=0 to (form1.Image1.Height-1) do
    begin
      ptr:=form1.Image1.Picture.Bitmap.ScanLine[i];
      for j:=0 to (form1.Image1.Width-1) do
      begin
        if form1.Image1.Picture.Bitmap.PixelFormat=pf24bit then
        begin
          ptr[3*j]:=round(0.114* ptr[3*j]
            +0.587*ptr[3*j+1] + 0.299*ptr[3*j+2]);
          ptr[3*j+1]:=ptr[3*j];
          ptr[3*j+2]:=ptr[3*j];
        end;
      end;
      form1.Image1.Refresh;
    end;
    except
      ShowMessage('Cannot complete the operation');
    end
end;
koshel вне форума Ответить с цитированием
Старый 27.03.2010, 13:39   #14
Tolik_P
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от koshel Посмотреть сообщение
формулы у меня есть но написаные от руки. найду в електроном виде сброшу.
Может отсканируешь или телефоном сфоткаешь и выложешь картинки формул?

Последний раз редактировалось Tolik_P; 27.03.2010 в 15:35.
Tolik_P вне форума Ответить с цитированием
Старый 28.03.2010, 00:15   #15
koshel
Пользователь
 
Аватар для koshel
 
Регистрация: 03.02.2010
Сообщений: 38
По умолчанию

завтра выложу. но там почерк страшненький.
вот выкладываю.IMG.jpg.
на сколько я понял здесь формула квадратического отклонения переделана под координаты картинок.

Последний раз редактировалось koshel; 28.03.2010 в 16:29.
koshel вне форума Ответить с цитированием
Старый 29.03.2010, 22:40   #16
koshel
Пользователь
 
Аватар для koshel
 
Регистрация: 03.02.2010
Сообщений: 38
По умолчанию

Ребята вот я попробовал сделать то что написал мой знакомый, получилось естественно криво и не рационально но все же, я думаю часть правильно.перед этим изображение перегнал в оттенки серого.
Код:
procedure TForm1.Button8Click(Sender: TObject);
var
q,w,p:integer;
X,koef,koeff, alfa0, alfaK, alfaKMY, rrr,Y, alfa:extended;
begin
  alfa0:=1/sqrt(2);
  koeff :=0;
  rrr:=0;


   for p:=0 to 10 do
     begin

  for q:=0 to (form1.Image1.Height-1) do
  begin
  for w:=0 to (form1.Image1.Width-1) do
  begin
    X:=form1.Image1.Canvas.Pixels[q,w];
    Y:=alfa0*X;
  alfaK:=Y*X+rrr;
  rrr:=alfaK;
  alfaKMY:= (alfaK/sqrt((alfa0*alfa0)+(alfa0*alfa0)));

end;
end;
  for q:=0 to (form1.Image1.Height-1) do
  begin
  for w:=0 to (form1.Image1.Width-1) do
  begin

  X:=form1.Image1.Canvas.Pixels[q,w];
  Y:=alfa0*X;
  koef:=(sqr(X-alfaK*(Y)))+ koeff;
  koeff:=koef;
  edit1.Text:=floattostr(koef);
  alfa0:=alfaKMY;

 end;
 end;
 end;
 end;

прошу не смеяться над кривостью, а давать дельные советы.
я думаю что полученный коэффициент и есть это среднеквадратическое отклонение, и если этот коэффициент будет похож с каким то другим коэффициентом то картинки одинаковы.

Последний раз редактировалось koshel; 29.03.2010 в 22:43.
koshel вне форума Ответить с цитированием
Старый 29.04.2010, 02:22   #17
koshel
Пользователь
 
Аватар для koshel
 
Регистрация: 03.02.2010
Сообщений: 38
По умолчанию

ребята подскажите как мне из канвы имеджа сохранить изображение с некоторыми изменениями??? например можно ли задать размер в пикселях сохраняемого изображения?
koshel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
наложение картинок wolf950 HTML и CSS 6 28.08.2011 15:08
Сравнение картинок Crucian Общие вопросы Delphi 8 01.11.2010 05:13
Сохранение картинок. Marsik Помощь студентам 0 15.10.2009 14:40
Распознавание картинок! Lemo Помощь студентам 10 13.03.2009 12:10
Сравнение картинок bloood Общие вопросы C/C++ 1 30.03.2007 15:54