matlab数据分类 画直方图

来源:互联网 发布:德克软件 编辑:程序博客网 时间:2024/06/11 11:57

我是刚刚接触matlab的小白,在度娘和广大网友的帮助下终于完成了这个小任务。所以想记录下,也希望可以帮助那些学习matlab的人。 小任务:主要对txt文本里的数据 进行处理下,然后通过matlab画画直方图来表示。

fid=fopen('gatsby1280x512clip.rgb.txt');    //打开txt文件 我的txt里是100行1列的数据
temp=textscan(fid,'%u');            // 数据存储在细胞单元里
fclose(fid);


a=zeros(1,256);  // 创建一个1到256 的数组
b=zeros(1,256);
c=zeros(1,256);


for i=1:100            
for j=1:(1280*i)
    red=temp{1,1}(2*j,1);      //读取细胞单元中的数据
    r_stat=abs(bitand(red,255));// 对数据处理 red&0xff 再取绝对值
    a(r_stat+1)=a(r_stat+1)+1;
end
end


for i=1:100 
for j=1:(1280*i)
    green=temp{1,1}(2*j+1,1);  //读取细胞单元中的数据
     g_stat=abs(bitand(bitshift(red,-8),255)); // 对数据进行处理  右移八位  再与上0xff 然后取绝对值
     b(g_stat+1)=b(g_stat+1)+1;
end
end


for i=1:100 
for j=1:(1280*i)
  blue=temp{1,1}(2*j+1,1);
   b_stat=abs(bitand(blue,255));
   c(b_stat+1)=c(b_stat+1)+1;
end
end


figure(2),bar(a); // 创建显示窗口
title('红色分量的灰度直方图')
xlabel('灰度值')
ylabel('出现个数')


figure(3),bar(b);
title('绿色分量的灰度直方图')
xlabel('灰度值')
ylabel('出现个数')

figure(4),bar(c);
title('蓝色分量的灰度直方图')
xlabel('灰度值')
ylabel('出现个数')



0 0
原创粉丝点击