matlab求图像平均梯度

qiyueliuxia 2013-05-07 06:57:07
求大神指导如何用matlab求解一副图像的平均梯度
比如这幅图:
...全文
6094 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22785743 2015-06-24
  • 打赏
  • 举报
回复
diffX=img-tempX;提示出错,矩阵维度不一致时怎么回事啊?
upcwxp 2013-05-14
  • 打赏
  • 举报
回复
function AVEGRAD=avegrad(img) %%%%%%%%%%%%%%%%%%%%%%%%% %%%% this function is used to calculate %%%% the average gradient of an image. %%%% editor: denghaibo Email:denghblzu07@gmail.com %%%% date : 2009-4-15 %%%% 平均梯度可敏感地反映图像对微小细节反差表达的能力,可用来评价图像的模糊程度 %%%% 在图像中,某一方向的灰度级变化率大,它的梯度也就大。因此,可以用平均梯度值 %%%% 来衡量图像的清晰度,还同时反映出图像中微小细节反差和纹理变换特征。 img=double(img); [M,N]=size(img); gradval=zeros(M,N); %%% save the gradient value of single pixel diffX=zeros(M,N); %%% save the differential value of X orient diffY=zeros(M,N); %%% save the differential value of Y orient tempX=zeros(M,N); tempY=zeros(M,N); tempX(1:M,1:(N-1))=img(1:M,2:N); tempY(1:(M-1),1:N)=img(2:M,1:N); diffX=img-tempX; diffY=img-tempY; diffX(1:M,N)=0; %%% the boundery set to 0 diffY(M,1:N)=0; diffX=diffX.*diffX; diffY=diffY.*diffY; AVEGRAD=sum(sum(diffX+diffY)); AVEGRAD=sqrt(AVEGRAD/2); AVEGRAD=AVEGRAD/((M-1)*(N-1)); end
凉凉二点凉 2013-05-08
  • 打赏
  • 举报
回复
水军总督 2013-05-08
  • 打赏
  • 举报
回复
无耻地坐等接分、、、、、、、、、
南风bu竞 2013-05-07
  • 打赏
  • 举报
回复
不懂,马克

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧