作业帮 > 综合 > 作业

怎么用matlab编程实现一幅图像的灰度直方图,要纵坐标为概率,横坐标为梯度值.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 16:35:58
怎么用matlab编程实现一幅图像的灰度直方图,要纵坐标为概率,横坐标为梯度值.
如图所示!
gradient计算梯度值, 然后用hist计算频次,就可以画出来了
再问: 能稍微在具体点吗?hist怎么计算频次?谢谢。。
再答: N = HIST(Y,M)
M是分组数,N是频次
再问: 最后是bar(N)吗?好像不对啊。。
再答: I=imread('lena.jpg');
I=rgb2gray(I);
subplot(221);imshow(I);
[Gx Gy]= gradient(double(I));
G = sqrt(Gx.^2+Gy.^2);
subplot(222);imshow(uint8(G));
[m,n]=size(G);
G=reshape(G,1,m*n);
h=[1:0.5:150];
subplot(223);hist(G,h);
[counts,x]=hist(G,h);
subplot(224);plot(x,counts);