MATLAB: How to find the gradient of an image which is divided into 32*32 blocks and is having standard deviation of every particular block

computer visiondigital image processingimage processing

So,I have this image, of 512*512 resolution,I have divided it into 32*32 blocks and then I have found the standard deviation of every block.Now,I am required to find the gradient of the resulting image,having the same size 512*512.According to the code I need to find the gradient of resulting image I2?
This is the code I have used till now-
function stds(b)
a=imresize(b,[512 512]);
myfun = @(block_struct) uint8(std2(block_struct.data)*ones(size(block_struct.data)));
I2 = blockproc(a,[32 32],myfun);
figure;
imshow(a);
figure;
imshow(I2,[]);

Best Answer

Whatever is your image, to compute gradient use
[Gmag,Gdir] = imgradient(I);
Is that what you need?