Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

попиксельное сравнение изображений   Найти похожие ветки 

 
borodaj   (2007-05-29 16:10) [0]

Доброго времени. господа!! подскажите такой вопрос несложный... есть два изображения, необходимо сравнить их попиксельно, и результат о их "схожести" вывести в процентах.... заранее спасибо!


 
MBo ©   (2007-05-29 16:16) [1]

Какая именно часть задачи вызывает затруднения?


 
borodaj   (2007-05-29 16:18) [2]

да, в принципе обе части... :)


 
MBo ©   (2007-05-29 16:24) [3]

с процентами проблемы, что ли? ;)

Проходишь в двух вложенных циклах по всем пикселам изображений с помощью ScanLine, например, или с использованием технологии отсюда: http://www.delphimaster.ru/articles/pixels/index.html и при совпадении увеличиваешь счетчик.


 
borodaj   (2007-05-29 16:32) [4]

спасиб огромное... а не завалялось у тебя кода пример (по поводу сравнения)... случайно? ))


 
MBo ©   (2007-05-29 16:46) [5]


function CompareBmp24(bmp1, bmp2: TBitmap): Double;
var
 i, j, Sum: Integer;
 SLine1, SLine2: PByteArray;
begin
 Assert((bmp1.PixelFormat = pf24bit) and (bmp2.PixelFormat = pf24bit),
   "24bit only!");
 Assert((bmp1.Width <> 0) and (bmp1.Height <> 0), "Empty bitmap!");
 if (bmp1.Height <> bmp2.Height) or (bmp1.Width <> bmp2.Width) then
 begin
   Result := 0;
   Exit;
 end;
 Sum := 0;
 for i := 0 to bmp1.Height - 1 do
 begin
   SLine1 := bmp1.ScanLine[i];
   SLine2 := bmp2.ScanLine[i];
   for j := 0 to bmp1.Width - 1 do
     if (PInteger(@SLine1[j * 3])^ and $FFFFFF00) =
       (PInteger(@SLine2[j * 3])^ and $FFFFFF00) then
       inc(Sum);
 end;
 Result := Sum / (bmp1.Width * bmp1.Height);
end;



 
borodaj   (2007-05-29 16:57) [6]

огромное спасибо!!



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1204709993
@!!ex
2008-03-05 12:39
2008.05.18
Будьте бдительны!


15-1207119287
Ega23
2008-04-02 10:54
2008.05.18
А вот как сделано: регистрируешься на каком-нибудь сайте,


15-1207059668
asdf2
2008-04-01 18:21
2008.05.18
Есливставить вторую видюху и подключить ко второму монитору


2-1208437042
Семен Кевларвестов
2008-04-17 16:57
2008.05.18
Как определить было TPopupMenu меню вызвано ShortCut или открыто.


15-1207257768
No_Dead
2008-04-04 01:22
2008.05.18
вопрос о xml