可视化matlab中的光流

时间:2013-07-29 22:16:59

标签: image image-processing matlab

我有一张尺寸为240 * 320的图像,我的光学流量结果是垂直和水平值。我需要通过原始图像上的箭头可视化光流。我知道我必须使用箭袋功能。类似的东西:

imshow(image)
hold on
quiver(vx,vy)
hold off

但我得到的是蓝色方块而不是箭头。

1 个答案:

答案 0 :(得分:2)

一个完全蓝色的方块可能是因为太多的箭头靠近在一起绘制的。

例如,以下代码将生成一组易于查看(如果不是很有意义)的箭头:

figure
data = imread('peppers.png');
imshow(data)
s = size(data);
hold on
[x,y] = meshgrid(1:50:s(2),1:50:s(1));
px = cos(x);
py = sin(y);
quiver(x,y,px,py)

Nice quiver plot

这将产生一个完全蓝色的情节:

figure
data = imread('peppers.png');
imshow(data)
s = size(data);
hold on
[x,y] = meshgrid(1:1:s(2),1:1:s(1)); % arrow spacing is too close! 
px = cos(x);
py = sin(y);
quiver(x,y,px,py) 

blue plot with too many arrows