图像颜色分布直方图

输入图像:

输出直方图分布图像:

输入图像:

输出直方图分布图像:

#include #include #include using namespace std;   int main( int argc, char** argv ){ IplImage * src= cvLoadImage("F:\\test3.jpg");  IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 ); IplImage* h_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* s_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* v_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* planes[] = { h_plane, s_plane };  /** H 分量划分为16个等级,S分量划分为8个等级 */ int h_bins = 16, s_bins = 8; int hist_size[] = {h_bins, s_bins};  /** H 分量的变化范围 */ float h_ranges[] = { 0, 180 };   /** S 分量的变化范围*/ float s_ranges[] = { 0, 255 }; float* ranges[] = { h_ranges, s_ranges };  /** 输入图像转换到HSV颜色空间 */ cvCvtColor( src, hsv, CV_BGR2HSV ); cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 );  /** 创建直方图,二维, 每个维度上均分 */ CvHistogram * hist = cvCreateHist( 2, hist_size, CV_HIST_ARRAY, ranges, 1 ); /** 根据H,S两个平面数据统计直方图 */ cvCalcHist( planes, hist, 0, 0 );  /** 获取直方图统计的最大值,用于动态显示直方图 */ float max_value; cvGetMinMaxHistValue( hist, 0, &max_value, 0, 0 );   /** 设置直方图显示图像 */ int height = 240; int width = (h_bins*s_bins*6); IplImage* hist_img = cvCreateImage( cvSize(width,height), 8, 3 ); cvZero( hist_img );  /** 用来进行HSV到RGB颜色转换的临时单位图像 */ IplImage * hsv_color = cvCreateImage(cvSize(1,1),8,3); IplImage * rgb_color = cvCreateImage(cvSize(1,1),8,3); int bin_w = width / (h_bins * s_bins); for(int h = 0; h

对于颜色直方图的统计,应该还可以用更多的该进,诸如当S分量小于给定值时,不同H,人眼看上去都是白色,可以将这些颜色的统计归并到白色中去。

[编辑]

作者

Pigoneand 猪逻辑公园

输入图像:

输出直方图分布图像:

输入图像:

输出直方图分布图像:

#include #include #include using namespace std;   int main( int argc, char** argv ){ IplImage * src= cvLoadImage("F:\\test3.jpg");  IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 ); IplImage* h_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* s_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* v_plane = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* planes[] = { h_plane, s_plane };  /** H 分量划分为16个等级,S分量划分为8个等级 */ int h_bins = 16, s_bins = 8; int hist_size[] = {h_bins, s_bins};  /** H 分量的变化范围 */ float h_ranges[] = { 0, 180 };   /** S 分量的变化范围*/ float s_ranges[] = { 0, 255 }; float* ranges[] = { h_ranges, s_ranges };  /** 输入图像转换到HSV颜色空间 */ cvCvtColor( src, hsv, CV_BGR2HSV ); cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 );  /** 创建直方图,二维, 每个维度上均分 */ CvHistogram * hist = cvCreateHist( 2, hist_size, CV_HIST_ARRAY, ranges, 1 ); /** 根据H,S两个平面数据统计直方图 */ cvCalcHist( planes, hist, 0, 0 );  /** 获取直方图统计的最大值,用于动态显示直方图 */ float max_value; cvGetMinMaxHistValue( hist, 0, &max_value, 0, 0 );   /** 设置直方图显示图像 */ int height = 240; int width = (h_bins*s_bins*6); IplImage* hist_img = cvCreateImage( cvSize(width,height), 8, 3 ); cvZero( hist_img );  /** 用来进行HSV到RGB颜色转换的临时单位图像 */ IplImage * hsv_color = cvCreateImage(cvSize(1,1),8,3); IplImage * rgb_color = cvCreateImage(cvSize(1,1),8,3); int bin_w = width / (h_bins * s_bins); for(int h = 0; h

对于颜色直方图的统计,应该还可以用更多的该进,诸如当S分量小于给定值时,不同H,人眼看上去都是白色,可以将这些颜色的统计归并到白色中去。

[编辑]

作者

Pigoneand 猪逻辑公园


相关内容

  • 图像特征提取
  • 图像特征提取方法 特征提取是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征,其结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连续的区域. 常用的图像特征有颜色特征.纹理特征.形状特征和空间关系特征. 图1.图像特征分类及其方法 一.颜色特征 颜色特征是一种全 ...

  • 数字图像处理课后题答案
  • 1. 图像处理的主要方法分几大类? 答:图字图像处理方法分为大两类:空间域处理(空域法)和变换域处理(频域法). 空域法:直接对获取的数字图像进行处理. 频域法:对先对获取的数字图像进行正交变换,得到变换系数阵列,然后再进行处理,最后再逆变换到空间域,得到图像的处理结果 2. 图像处理的主要内容是什 ...

  • 图像处理简答题
  • 1. 数字图像处理的主要研究内容包含很多方面,请列出并简述其中的4种.1像数字化:将一幅图像以数字的形式表示.主要包括采样和量化两个过程.②图像增强:将一幅图像中的有用信息进行增强,同时对其无用信息进行抑制,提高图像的可观察性.3③图像的几何变换:改变图像的大小或形状.④图像变换:通过数学映射的方法 ...

  • 基于颜色的皮肤检测综述
  • 第12卷 第3期2007年3月 中国图象图形学报JournalofImageandGraphics Vol.12,No.3 Mar.,2007 基于颜色的皮肤检测综述 徐战武 朱淼良 (浙江大学计算机学院,杭州 310027) 摘 要 在系统回顾和比较了基于颜色的皮肤检测的方法和技术(其中包括:颜色 ...

  • [数字图像处理]复习大作业及答案
  • 2014年上学期<数字图像处理>复习大作业及参考答案 ===================================================== 一.选择题(共20题) 1.采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增 强.( B ) A ...

  • 遥感100个概念
  • 1. 数字图像:用计算机存储和处理的图像,是一种空间坐标和灰度均不连续 的.用离散数学表示的图像. 2. 遥感数字图像的像素:是将地面信息离散化而形成的方格,是计算机图像 处理的最小单元:具有特定的空间位置和属性特征. 3. 遥感数字图像:是数字形式的遥感图像,是地物反射或辐射的不同波长的 电磁波能 ...

  • Landsat TM 影像处理最完整流程
  • 一. 界面系统介绍 1. 主菜单: 菜单项,File .Basic Tool.Classification .Tranform .Spectral 实 习所涉及的(粗略介绍) 2. Help 工具的使用 3. 主菜单设置(preferences ):内存设置 二. 文件的存取与显示 1. 图像显示 ...

  • 跟踪算法综述
  • (1) 基于特征匹配的目标跟踪 基于特征匹配的跟踪方法的基本思路是:提取运动目标的子特征,如目标的边缘.轮廓.角点等,将这些特征作为目标的描述因子,并在连续帧中匹配以实现跟踪.由于运动目标的子特征分布在整个目标区域中,当目标出现部分遮挡时,该方法仍然能够检测到未被遮挡的部分,所以该方法对有遮挡的目标 ...

  • 基于柯西分布的视频图像序列背景建模和运动目标检测
  • 第28卷 第3期2008年3月 文章编号:0253-2239(2008) 03-0587-06 光 学 学 报 V ol . 28, N o . 3March , 2008 基于柯西分布的视频图像序列背景建模和 运动目标检测 明 英 1, 3 蒋晶珏 2 123 (清华大学电子工程系, 北京1000 ...