gradients of image

2 Ansichten (letzte 30 Tage)
priya
priya am 22 Nov. 2011
dx = 0.000283018867925 meters;
dy = 0.000089285714286 meters;
I am trying to find gradients of image of size 1000X1333. One pixel in x-direction represents dx and one pixel in y-direction represents dy. I applied two methods to find the gradients.. one is convolution method and the other is calling MATLAB gradient method. I was expecting the results to be identical but they are not. Would any one point out where I am going wrong. Below are the codes for convolution and gradient methods.
convolution method:
fx = conv2(image1,0.5*[-1 1; -1 1], 'same');
fy = conv2(image1,0.5*[-1 -1; 1 1], 'same');
fx = fx./dx;
fy = fy./dy;
MATLAB defined gradients:
[fx,fy] = gradient(image1,dx,dy);

Antworten (2)

Jan
Jan am 22 Nov. 2011
Try the functions on simpler test data:
image1 = 1:10;
conv2(image1, 0.5 * [-1 1; -1 1], 'same')
% >> -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, 5
gradient(image1)
% >> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
gradient uses the central difference for the interior points:
image1 = rand(1, 10);
gradient(image1)
conv(image1, 0.5 * [1, 0, -1], 'same')
Now the interior points are equal, but the edges differ. This can be expanded to the 2D case also.
  2 Kommentare
priya
priya am 28 Nov. 2011
Thanx for the reply. Do you know any links to understand conv2 by example. I looked into matlab documentation but I couldn't understand anything.
Srinibas Bhuyan
Srinibas Bhuyan am 28 Nov. 2012
did you try with any one of prewitt/sobel operator?

Melden Sie sich an, um zu kommentieren.


Matt J
Matt J am 28 Nov. 2012
Bearbeitet: Matt J am 28 Nov. 2012
Also, if you want non-central differences, as in your original code, you need to flip the kernels, since this is convolution and not correlation:
fx = conv2(image1,0.5*[1 , -1], 'same');
fy = conv2(image1,0.5*[1 ; -1], 'same');

Kategorien

Mehr zu Signal Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by