MATLAB: Can someone please help me implementing this code without loop

digital image processingMATLAB

Hello,
Can someone help me to speed up this code? Without loops
img = imread("my_img.png");
for i=2:256
for j=2:256
v1(i,j) = max(abs(img(i+1,j)-img(i,j)),abs(img(i-1,j)-img(i,j)));
v2(i,j) = max(abs(img(i,j-1)-img(i,j)),abs(img(i,j+1)-img(i,j)));
v3(i,j) = max(abs(img(i-1,j+1)-img(i,j)),abs(img(i+1,j-1)-img(i,j)));
v4(i,j) = max(abs(img(i+1,j+1)-img(i,j)),abs(img(i-1,j-1)-img(i,j)));
end
end
min_v1 = min(v1);
min_v2 = min(v2);
min_v3 = min(v3);
min_v4 = min(v4);
Thanks

Best Answer

f = rand(4,5);
[m,n] = size(f);
x = 2:m-1;
y = 2:n-1;
v1 = max(abs(f(x+1,y)-f(x,y)),abs(f(x-1,y)-f(x,y)));
v2 = max(abs(f(x,y-1)-f(x,y)),abs(f(x,y+1)-f(x,y)));
v3 = max(abs(f(x-1,y+1)-f(x,y)),abs(f(x+1,y-1)-f(x,y)));
v4 = max(abs(f(x+1,y+1)-f(x,y)),abs(f(x-1,y-1)-f(x,y)));
vmin = min(cat(3,v1,v2,v3,v4),[],3);
alpha = 0.1;
[x,y] = find(vmin>alpha);
x = x+1;
y = y+1;
I_f = [x y]