![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сранить два изображения???
root © (2006-09-27 15:09:00)var
i,j,k:integer;
begin
k:=0;
for i := 0 to bit1.Height - 1 do begin
for j := 0 to bit1.Width - 1 do begin
if bit1.Canvas.Pixels[i,j]<>bit2.Canvas.Pixels[i,j] then
begin
form1.Canvas.Pixels[i,j]:=bit2.Canvas.Pixels[i,j];
end;
end;
end;
из двух изображений этот алгоритм вычисляет разницу методом перебора
работает очень меделнно обработка двух изображений 1280х1024 затрачиват 1.5-2 сек что очень медленно как ускортить процесс обработки????
clickmaker (2006-09-27 16:01:00) [1]
> [5] root © (27.09.06 16:00)
уменьшится естесственно. Растровые операции всегда быстрее попиксельных, бо юзают аппаратные возможности видяхи
root (2006-09-27 16:00:00) [2]но время обработки неуменьшится или уменьшится?
clickmaker (2006-09-27 15:41:00) [3]
> [2] root © (27.09.06 15:27)
я не попиксельно имел в виду, а
BitBlt(hDestDC, ... hSrcDC, ..., SRCINVERT)
в DestDC у тебя окажется результирующая картинка, где одинаковые пикселы будут черными
Loginov Dmitry (2006-09-27 15:38:00) [4]root © (27.09.06 15:09)
как ускортить процесс обработки
Использовать ScanLine вместо Pixels
root (2006-09-27 15:27:00) [5]а какя разница между XOR и ли сравнением последняя вроде занимает меньше операций процессора??
или я ошибаюсь опиши подробнее???
clickmaker (2006-09-27 15:13:00) [6]а если наложить их с маской XOR?
Тогда одинаковые пиксели дадут 0 в сумме.