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

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

Чтение и отображение изображения.

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)

Вспомогательная функция

The 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)

Похожие примеры

Подробнее о