Карта сайтаСсылкиКонтакты

Сравнение двух изображений

PDF Печать
Статьи

Эта процедура позволяет сравнивать два изображения по пикселям. Предположительно, что Image1 и Image2 имеют одинаковые размеры. Результат выводится в процентах в компоненте Label, помещенного на форму.


procedure CompareImages(Image1, Image2: TImage);
var x, y: integer;
   differences: LongInt;
   line1, line2: PByteArray;
   procent: single;
const  porog=5;
   // Когда значение превысит порог,
   // будет выведена ошибка.
begin
   differences:=0;
   for y:=0 to Image1.Picture.Bitmap.Height - 1 do begin
     line1:=Image1.Picture.Bitmap.ScanLine[y];
     line2:=Image2.Picture.Bitmap.ScanLine[y];
     for x:=0 to Image1.Picture.Bitmap.Width - 1 do
       if abs(line1[x] - line2[x]) > porog then
         inc(differences);
     if Image1.Picture.Bitmap.Height*Image1.Picture.Bitmap.Width>0 then
       procent:=100*(differences/(Image1.Picture.Bitmap.Height*
       Image1.Picture.Bitmap.Width))
     else
       procent:=0;
     Label1.Caption:='Отличия:'+FloatToStr(procent)+'%';
   end;
end;

 

Добавить комментарий


Защитный код
Обновить