如何用matlab做图片的灰度直方图

如何用matlab做图片的灰度直方图,第1张

或者在 matlab下边输入 help imhistedit histeq%%%灰度图象的直方图数据%%%clcclearfn='ricetif';I=imread (fn);J=I;%计算灰度图象的直方图数据L=256; %灰度级Ps = zeros(L,1); %统计直方图结果数据nk=zeros(L,1);[row,col]=size(I);n=rowcol; %总像素个数for i = 1:rowfor j = 1:colnum = double(I(i,j))+1; %获取像素点灰度级nk(num) = nk(num)+1; %统计nkendend%计算直方图概率估计for i=1:LPs(i)=nk(i)/n;endfigure;subplot(3,1,1);imshow(J),title('原图');subplot(3,1,2),plot(nk),title('直方图(nk)');subplot(3,1,3),plot(Ps),title('直方图(Ps)');%figure(4),imhist(hist);%p=imhist(hist); %生成直方图函数,返回灰度图象直方图数据

根据灰度图像的直方图分析图像的特性:在进行阈值分割的时候往往要确定一定的灰度范围,把自己想要的部分分割出来,这时就需要借助灰度直方图拖拉确定最小灰度值,拖拉确定最大灰度值,区间内的范围就是在图像上显示的部分,可选择显示部分的颜色(即感兴趣区域的颜色),5处确定的是显示部分是否填充(fill:代表区域内填充,margin:代表区域轮廓)。当选出感兴趣区域后可点击3处插入代码即可生成阈值分割函数。要想调整图像对比度,打开灰度直方图后。和阈值分割类似,确定灰度范围,根据此范围调整图像对比度。在完成对比度调试后,点击4处插入代码即可生成scale_image函数。

img=imread('myImgjpg');
my_hist=imhist(img);
% 直方图的结果是一个向量,每一位对应一个统计数值,相应灰度值的像素个数直接访问就好了
nb_pixels=my_hist(x+1); % 比如 灰度值为x的像素个数 (注意要加1,因为像素值从0开始)。

[m,n]=size(I); %I 为灰度图像
h=zeros(1,256);
for i=1:m
for j=1:n
h(I(i,j))=h(I(i,j))+1;
end
end

df行=4-1=3,df列=18-1=17,df交互=317=51,df误差=418(144/(418)-1)=72,df总计=418(144/(418))-1=143
MS行=SS行/df行=195536,MS列=SS列/df列=54502,MS交互=SS交互/df交互=9731,MS误差=SS误差/df误差=8438,F行=MS行/MS误差=2317,F列=MS列/MS误差=646,F交互=MS交互/MS误差=115


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13327514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存