Выполните основанные на пикселе операции на графическом процессоре

В этом примере показано, как выполнить основанные на пикселе операции на графическом процессоре при помощи функций, которые отправляют и данные и операции к графическому процессору для обработки. Этот метод является самым эффективным для поэлементных операций, которые требуют двух или больше наборов данных.

Считайте и отобразите изображение.

I = imread('concordaerial.png');
imshow(I)

Переместите данные с центрального процессора на графический процессор путем создания gpuArray Объект (Parallel Computing Toolbox).

Igpu = gpuArray(I); 

Выполните операцию на графическом процессоре. Этот пример задает пользовательскую функцию под названием rgb2gray_custom это преобразует изображение RGB в шкалу полутонов при помощи пользовательского взвешивания красных, зеленых, и синих цветовых каналов. Эта функция задана в конце примера. Передайте указатель на пользовательскую функцию и данные к графическому процессору для оценки arrayfun (Parallel Computing Toolbox) функция.

Igray_gpu = arrayfun(@rgb2gray_custom, ...
    Igpu(:,:,1),Igpu(:,:,2),Igpu(:,:,3));
Caught front-end user exception: MATLAB:m_illegal_character

Положите обратно данные к центральному процессору от графического процессора при помощи gather (Parallel Computing Toolbox) функция.

I_gpuresult = gather(Igray_gpu);

Отобразите результат.

imshow(I_gpuresult)

Поддерживание функции

rgb2gray_custom помощник функционирует, берет линейную комбинацию трех каналов и возвращает одно выходное изображение канала.

function gray = rgb2gray_custom(r,g,b)
    gray = 0.5*r + 0.25*g + 0.25*b;
end

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

(Parallel Computing Toolbox) | (Parallel Computing Toolbox) | (Parallel Computing Toolbox)

Связанные примеры

Больше о