作业帮 > 综合 > 作业

matlab解决求图像某点梯度的问题

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/14 07:15:46
matlab解决求图像某点梯度的问题
使用matlab,对一副二值图像求其指定的某一像素点的梯度.
matlab解决求图像某点梯度的问题
加入你的二值图像存放在矩阵I中
那么
[dx dy]=gradient(I);
得到的两个矩阵 dx dy,和I大小一样,对应于原来矩阵I分别在x,y方向的梯度
想提取那一点,直接dx dy中提取就可以了
例如想要图像中10行,20列那点像素的梯度
xx=dx(10,20);
yy=dy(10,20);
得到的xx,yy即使这点x方向和y方向的梯度
再问: I=double(I);
[Fx,Fy]=gradient(I);
g1=sqrt(Fx^2+Fy^2);
grandf=sum(g1)/num;

这样求图像的平均梯度对吗?还是要再加一重循环呢?
运行的时候会提示我这样的错误,是什么原因呢?
Too many output arguments.
[Fx,Fy]=gradient(I);

分先给你了哈,谢谢先。
再答: I=double(I);
[Fx,Fy]=gradient(I);
g1=sqrt(Fx.^2+Fy.^2);
grandf=sum(g1(:))/num;

如果你的图像I是个二维矩阵,那么不应该报错
如果有报错的话,检查一下你的矩阵I的大小