京公网安备 11010802034615号
经营许可证编号:京B2-20210330
直方图你一定知道,那么灰度直方图呢?你了解吗?灰度直方图,顾名思义,就是先统计出来一幅图像中每一个像素出现的次数,之后再把每一个像素出现的次数除以总的像素个数,得到的结果就是这个像素的出现频率,最后再将像素和该像素的出现频率用图表示出来,就是灰度直方图。先简单通俗的介绍了灰度直方图,下面跟随小编一起详细了解一下吧。
一、灰度直方图概念
灰度直方图,是数字图像处理中,一种计算代价非很小,但是非常有用的工具,它概括出了一幅图像的灰度级信息。
灰度直方图是图像灰度级的函数,通常用来描述每个灰度级在图像矩阵中的像素个数或者占有率。灰度直方图横坐标是灰度级,纵坐标表示图像中该灰度级出现的个数(频率)。
一维直方图的结构:
可以将高维直方图理解为图像在每个维度上灰度级分布的直方图。最为常见的是二维直方图,二维中对应每个像素统计个变量。
二·、灰度直方图的性质:
1、灰度直方图只反映图像的灰度分布情况,不能反映图像像素的位置,也就是丢失了像素的位置信息
2、一幅图像对应的灰度直方图是唯一的,但是不同的图像却能够对应相同的直方图
3、将一幅图像分为多个区域,多个区域的直方图之和也就是原图像的直方图
三、创建灰度直方图
<span style="font-size:18px;">#include <iostream>
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
using namespace std;
IplImage *DrawHistogram(CvHistogram*hist, float scaleX = 1, float scaleY = 1){ // 画直方图
float histMax = 0;
cvGetMinMaxHistValue(hist, 0 , &histMax, 0, 0); // 取得直方图中的最值
IplImage *imgHist = cvCreateImage(cvSize(256 * scaleX, 64*scaleY), 8, 1);
cvZero(imgHist); //// 清空随机值
for(int i = 0; i < 255; i++)
{
float histValue = cvQueryHistValue_1D(hist, i); // 取得直方图中的i值
float nextValue = cvQueryHistValue_1D(hist, i+1);
int numPt = 5;
CvPoint pt[5];
pt[0] = cvPoint(i*scaleX, 64*scaleY);
pt[1] = cvPoint((i+1)*scaleX, 64*scaleY);
pt[2] = cvPoint((i+1)*scaleX, (1 -(nextValue/histMax))* 64 * scaleY);
pt[3] = cvPoint((i+1)*scaleX, (1 -(histValue/histMax))* 64 * scaleY);
pt[4] = cvPoint(i*scaleX, 64*scaleY);
cvFillConvexPoly(imgHist, pt, numPt, cvScalarAll(255));
}
return imgHist;
}
int main()
{
IplImage *img = cvLoadImage("F:\\tongtong.jpg",1);
if(!img){
cout << "No data img" << endl;
}
int dims = 1;
int sizes = 256;
float range[] = {0,255};
float*ranges[]={range};
CvHistogram *hist = cvCreateHist(dims, &sizes, CV_HIST_ARRAY, ranges, 1);
cvClearHist(hist); //清除直方图里面的随机值
IplImage *imgBlue = cvCreateImage(cvGetSize(img), 8, 1);
IplImage *imgGreen = cvCreateImage(cvGetSize(img), 8, 1);
IplImage *imgRed = cvCreateImage(cvGetSize(img), 8, 1);
cvSplit(img, imgBlue, imgGreen, imgRed, NULL); //将多通道图像分解
cvCalcHist(&imgBlue, hist, 0, 0); // 计算图像的直方图
IplImage *histBlue = DrawHistogram(hist); // 将直方图中的数据画出来
cvClearHist(hist);
cvCalcHist(&imgGreen, hist, 0, 0);
IplImage *histGreen = DrawHistogram(hist);
cvClearHist(hist);
cvCalcHist(&imgRed, hist, 0, 0);
IplImage *histRed = DrawHistogram(hist);
cvClearHist(hist);
cvNamedWindow("show",0);
cvNamedWindow("B", 0);
cvNamedWindow("G", 0);
cvNamedWindow("R", 0);
cvShowImage("show",img);
cvShowImage("B",histBlue);
cvShowImage("G",histGreen);
cvShowImage("R", histRed);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("show");
cvReleaseImage(&histBlue);
cvDestroyWindow("B");
cvReleaseImage(&histGreen);
cvDestroyWindow("G");
cvReleaseImage(&histRed);
cvDestroyWindow("R");
return 0;
}</span>
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在校期间能考的证书,大致落在四类里:通用基础类、岗位技能与行业认证类、专业技术资格类、国家职业资格与职业技能等级类。但比 ...
2026-11-04先把结论说清楚:大学生能自学考的证,主要集中在三类。第一类是通用基础类,比如大学英语四六级、全国计算机等级考试、普通话水 ...
2026-11-04大学生考哪些证书好,没有一个统一答案。有人说的“好”是好考、周期短,有人指招聘时用得上,还有人看长期职业壁垒。三种口径排 ...
2026-11-04“什么证书值得考”没有一个统一答案。同一张证书,对准入岗位是硬门槛,对另一类岗位可能只是加分项;对在校生是求职准备,对在 ...
2026-11-04“女生考什么证比较好”这个问题,真正的难点不在“女生”,而在“比较好”三个字。对一个人来说,好报、好考、好就业往往不是同 ...
2026-11-04离开校园后考证书,最怕两件事:花几个月备考,发现报考条件不符;或者考下来,岗位用不上。社会人士选证书,先别急着看榜单,先 ...
2026-11-04“女孩子适合考什么证书”很难用一张榜单回答。“适合”包含太多变量:求稳进体制或学校,靠技能接单变现,还是进入运营、市场、 ...
2026-11-04先把结论说清楚:选证书不看性别。“男的适合考什么”这个问题里,真正有用的是三个变量——你想去的岗位、你现有的能力基础、你 ...
2026-11-04“哪些证书属于技能证书”,没法靠一份名单回答。技能证书不是某一部门统一颁发的单一证书,而是按发证主体和评价性质划分的一类 ...
2026-11-04“哪些是职业资格证书”这个问题,答案比多数人想的要窄。按照现行制度,职业资格证书主要指列入国家职业资格目录的证书,分为准 ...
2026-11-04想考证,但单位不统一组织,能不能自己报名?答案是:能,但前提是先分清三类证书——个人可独立报考、需单位统一组织、需机构代 ...
2026-11-04“好考又有用”是证书选择里最常被并列、也最容易被混淆的两个条件。好考,可能指报名不设门槛,也可能指考试科目少、通过难度低 ...
2026-11-04“含金量排名前十证书”是一个搜索量很大、但很难有标准答案的问题。原因不复杂:证书的价值依附于具体岗位和制度属性。注册会计 ...
2026-11-04“国内认可的证书”不是一个单一概念。有人问的是国家职业资格,有人问的是职称,有人问的是行业认证,还有人把培训机构发的结业 ...
2026-11-04高中生搜“可以考什么证书”,最常踩的坑不是选错方向,而是没看清报名门槛就付了费。直接回答:高中在读期间,真正能报的主要是 ...
2026-11-04“都有什么证书可以考取”这个问题,直接搜会得到一堆互相矛盾的榜单。更有效的做法不是先问“哪个最值钱”,而是先分清证书的性 ...
2026-11-04大专在读期间能考的证书,比很多人想象的要多,但真正值得花时间的并不多。核心判断顺序只有一条:先看当期官方公告是否允许专科 ...
2026-11-04大一刚入学就琢磨考证,这个念头本身不坏,但顺序容易搞反。直接回答:大一不必急着考高门槛、强专业背景的证书,优先把英语四六 ...
2026-11-04大学生考证书,没有一张“人人都该考”的清单。更实用的做法是:先确定目标岗位方向,再按“岗位匹配→在校可考→校招实用→学习 ...
2026-11-04大学生能考的证书很多,但真正值得先花时间的,不是“名字听起来厉害”的那几张,而是能对应到你目标岗位、且在校期间确实报得上 ...
2026-11-04