作业帮 > 综合 > 作业

matlab 在图像上画矢量

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 22:44:32
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又很小,在左上角画一个很短的线,基本上就看不到