matlab 在图像上画矢量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 在图像上画矢量相关的知识,希望对你有一定的参考价值。
用matlab读入一幅图像,并知道某点的方向向量是(nx,ny),我想把这个矢量画在图像上,请问如何实现?
你还得知道这点的坐标x,y用函数quiver(x,y,nx,ny)
就可以在点 x,y 位置根据矢量 nx,ny 画上一个箭头
实际上函数的输入还可以是矩阵,x,y,nx,ny可以是大小相同的矩阵
在一些列坐标点x,y的位上画上对应的向量,完成矢量场的画图追问
我这样试过呀 画不出来啊 我想画在一幅图像上。
追答你先把之前的图画好了
然后
hold on;
quiver(x,y,nx,ny);
hold off;
只有加了hold on,在画新的图的时候就不会删掉旧的图
那样可以把多幅图同时画在一个画面内
ImageData =rgb2gray(imread('t3.bmp'));% 读取图像
figure(1);
imshow(ImageData);
hold on;
%求法向量
nx= -0.1527;
ny=0.9883;
quiver(1,1,nx,ny);
hold off
真的无法实现啊 亲 着急
你的那个坐标(1,1)怎么来的
图像给出来了,(1,1)就是图像左上角的点
而你的矢量这么小
就在图像的左上角画个很小的线,怎么看得到
我知道我的错误之处了。quiver(x,y,nx,ny);
函数中,x y必须是矩阵,就可以画出来了。
x,y 不一定是矩阵,一个数也可以
只是你的1,1代表第一行第一列,就是图像的左上角,
而你的nx,ny又很小,在左上角画一个很短的线,基本上就看不到
我这样试过呀 画不出来啊 我想画在一幅图像上。
追答[x,y] = meshgrid(-2:.2:2,-1:.15:1);
z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.15);
contour(x,y,z), hold on
quiver(x,y,px,py), hold off, axis image
按上面的试试
以上是关于matlab 在图像上画矢量的主要内容,如果未能解决你的问题,请参考以下文章