| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3437 人关注过本帖
标题:一个图像彩色直方图计算的程序,给初学者
只看楼主 加入收藏
just_panlei
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-27
收藏
 问题点数:0 回复次数:3 
一个图像彩色直方图计算的程序,给初学者
一个图像彩色直方图计算的程序,给初学者^_^
比较简单,如果有问题的请跟帖,我看到以后会回复的。
计算16*16*16的彩色直方图程序如下(8*8*8或者32*32*32的可以类推):
RGB = imread('autumn.tif');
[p,q,r]=size(RGB);
f=RGB;        %read image
f_r=f(:,:,1);      % R,G,B of the image
f_g=f(:,:,2);
f_b=f(:,:,3);
f_r1=fix(double(f_r)/16);        %将图像颜色级数变为16bin,颜色值从0-15
f_g1=fix(double(f_g)/16);
f_b1=fix(double(f_b)/16);

f(:,:,1)=f_r1;          %得到16bin的图像
f(:,:,2)=f_g1;
f(:,:,3)=f_b1;

H=zeros(16*16*16,1);            %直方图初始化

i=1;
for c1=0:15          %计算彩色直方图
    for c2=0:15
        for c3=0:15
            temp=[c1 c2 c3];            %计算彩色为c1,c2,c3的像素个数
            num=length(find(double(f(:,:,1))==temp(1) & double(f(:,:,2))==temp(2) & double(f(:,:,3))==temp(3)));
            H(i)=num;
            i=i+1;
        end
    end
end

        
%已知像素彩色为(x1,x2,x3),则其在彩色直方图的第几个bin可以用以下公式计算:x1*256+x2*16+x3+1
%已知彩色直方图的第i个bin,则其对应的像素彩色可用以下公式计算:x1=fix(i/256),x2=fix(i-x1*256/16)
%x3=i-x1*256-x2*16-1
搜索更多相关主题的帖子: 图像 彩色 
2008-11-11 16:45
bitzw
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-21
收藏
得分:0 
如何制作一个三维的直方图?
2008-11-21 14:42
czjszx2000
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-12-10
收藏
得分:0 
xiexie
2008-12-10 09:56
victor0308
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-1
收藏
得分:0 
首先感谢lz提供的代码 真是感激不尽啊 我是新手 这个为什么在MATLAB 运行的时候 数据老是显示是0啊
2009-11-01 23:30
快速回复:一个图像彩色直方图计算的程序,给初学者
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012078 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved