imabsdiff

Абсолютная разность двух изображений

Синтаксис

Z = imabsdiff(X,Y)

Описание

пример

Z = imabsdiff(X,Y) вычитает каждый элемент в массиве Y от соответствующего элемента в массиве X и возвращает абсолютную разность в соответствующем элементе выходного массива Z.

Опционально можно вычислить абсолютную разность X, и Y с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

Примеры

свернуть все

Считайте изображение в рабочую область.

I = imread('cameraman.tif');

Отфильтруйте изображение.

J = uint8(filter2(fspecial('gaussian'), I));

Вычислите абсолютную разность двух изображений.

K = imabsdiff(I,J);

Отобразите изображение абсолютной разности.

figure
imshow(K,[])

Считайте изображение и преобразуйте его в gpuArray.

I = gpuArray(imread('cameraman.tif'));

Отфильтруйте изображение, выполнив операцию на графическом процессоре.

J = imgaussfilt(I);

Вычислите абсолютную разность между отфильтрованным изображением и оригинальным изображением.

K = imabsdiff(I,J);

Отобразите изображение абсолютной разности.

figure
imshow(K,[])

Входные параметры

свернуть все

Введите изображение, заданное как действительный, неразреженный числовой массив любой размерности.

Чтобы вычислить абсолютную разность с помощью графического процессора, задайте X как gpuArray, который содержит числовой массив.

Пример: x = imread('cameraman.tif');

Пример: X = gpuArray(imread('cameraman.tif'));

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Введите изображение, заданное как числовой массив. Y должен быть одного размера и класс как X.

Чтобы вычислить абсолютную разность с помощью графического процессора, задайте Y как gpuArray, который содержит числовой массив, одного размера и класс как массив в X.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Выходные аргументы

свернуть все

Изображение различия, возвращенное как числовой массив. Z имеет тот же класс и размер как X и Y. Если X и Y являются целочисленными массивами, то imabsdiff обрезает элементы в выводе, которые превышают область значений целочисленного типа.

Если изображение различия вычисляется с помощью графического процессора, то Z возвращен как gpuArray, содержащий числовой массив, одного размера и класс как в X и Y.

Советы

  • Если X имеет класс double, то используйте выражение abs(X-Y) вместо этой функции.

  • Если X имеет класс logical, то используйте выражение XOR(X,Y) вместо этой функции.

  • Когда X и Y имеют класс uint8, int16 или single, затем imabsdiff может использовать аппаратную оптимизацию, чтобы запуститься быстрее.

  • imabsdiff работает на графическом процессоре, если по крайней мере одним из X и Y является gpuArray s. Не необходимо, чтобы обоими входными параметрами был gpuArray s.

Расширенные возможности

Смотрите также

| | | | |

Представлено до R2006a