mathematical operation on each element of gpuArray
Show older comments
How can i do mathematical operation on each element of gpuArray with the equation below? s = 2r(i, j) − r(i, j +1) + r(i, j −1). here r is the image matrix. I've written the code below:
im = imread('(HTC-1-M7)1.jpg');
tic
img = gpuArray(im);
for j =2: size(im,2) -1
A(:,:,:) = 2*img(:, :,:) -img(:,j+1,:) + img(:, j-1,:);
end
B = gather(A);
toc
Is there anyway to apply equation on each element of gpuarray with function like arrayfun without using loop? Thanks in advance.
2 Comments
Matt J
on 22 Jan 2018
Are you certain that it is not a 2nd order differencing filter that you want:
s = 2r(i, j) − r(i, j +1) - r(i, j −1)
Rouhan Noor
on 22 Jan 2018
Edited: Rouhan Noor
on 22 Jan 2018
Answers (1)
B=gather( imfilter(gpuArray(img), [+1,2,-1]) );
4 Comments
Rouhan Noor
on 22 Jan 2018
Rouhan Noor
on 22 Jan 2018
Rouhan Noor
on 22 Jan 2018
B=gather( diff(gpuArray(img),2,2) );
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!