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的大小

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网