我有一张图片。我想在MATLAB中使用渐变函数显示渐变图像的箭头图,最好叠加在渐变图像上。
I = imread('image.png');
[gx,gy] = gradient(double(rgb2gray(I)));
g = abs(gx) + abs(gy);
figure;
imshow(g, []);
hold on;
quiver(abs(gx),abs(gy));
这就是我尝试过的,而我得到的只是一个完全蓝色的显示。
答案 0 :(得分:5)
我认为你看到的只是箭头,但它们太靠近了。
如果您分别绘制两个图形(imshow(g)
和quiver
),它们会显示正常。 imshow仅显示没有任何缩放的像素,如果你修复它(使其缩放)箭袋箭头也将在它们之间有更多的空间并变得可见。
您可以通过将'InitialMagnification','fit'
选项添加到imshow:
imshow(g,'InitialMagnification','fit')
或者你可以显示更少的箭箭:
figure;
imshow(g, []); % [] to display image properly
hold on;
[Nx, Ny] = size(g);
xidx = 1:10:Nx;
yidx = 1:10:Ny;
[X,Y] = meshgrid(xidx,yidx);
quiver(Y',X',abs(gx(xidx,yidx)),abs(gy(xidx,yidx)));