gradients of image
조회 수: 2 (최근 30일)
이전 댓글 표시
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);
댓글 수: 0
답변 (2개)
Jan
2011년 11월 22일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Signal Processing Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!