Just use imgradient(img). Why go to all the trouble of doing it yourself when there's a built-in function that does it for you?
Gradient of Image using window size
1 次查看(过去 30 天)
显示 更早的评论
I am new to MATLAB and trying to calculate the magnitude of the gradient using a specified window size but I receive the error: Attempted to access img(0,5); index must be a positive integer or logical. I am not sure how to solve this. Does anyone have any suggestions?
img = imread('image.png');
img = im2double(img);
[row, col] = size(img);
windowSize = 5;
for x = 1:row
for y = 1:col
if (x >= windowSize && x < row - windowSize && y >= windowSize && y < col - windowSize)
gradient(x,y) = abs(img(x+windowSize,y) - img(x-windowSize,y)) + abs(img(x,y+windowSize) -img(x,y-windowSize));
else
gradient(x,y) = 0;
end end end
0 个评论
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!