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

Вниз

Сравнение двух изображений   Найти похожие ветки 

 
deep-forest ©   (2003-01-04 00:12) [0]

Подскажите, как можно сравнить два изображения в bmp-формате и определить процент несовпадения.
Заранее благодарен.


 
Gigabyte ©   (2003-01-04 08:46) [1]

Могу прислать глюкавинький примерчик:
Сравнивает изображения с шаблонами в БД и выдает %-т совпадения
P.S. Натыкано много лишнего, но вполне рабочий


 
KA_   (2003-01-04 10:02) [2]

А что значит "процент несовпадения"? Процент несовпадающих пикселей? Если да, то насколько точно он должен быть вычислен? И какие примерно изображения (размер, глубина цвета)?


 
MBo ©   (2003-01-04 10:10) [3]

набросок для 24-битных картинок (для других форматов еще проще),
результат от 0 до 1 при полном совпадении

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;



 
deep-forest ©   (2003-01-04 21:18) [4]

Все ответившим спасибо, отдельное спасибо MBo за кусок кода.
Попробую, думаю, что вопрос снят.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
4-19911
AlexSW
2003-02-06 11:44
2003.04.07
Эмуляция нажатия 2-х клавиш одновремкнно.


14-19853
Val
2003-03-21 10:04
2003.04.07
Скажи спасибо армии США!


1-19578
Юлия
2003-03-27 10:44
2003.04.07
длинные слова в отчете


3-19474
Сергей Шапранов
2003-03-19 14:08
2003.04.07
Работа Paradox в сети


1-19585
Tornado
2003-03-28 14:14
2003.04.07
Memo