opencv3 计算一维直方图-灰度直方图的计算

来源:互联网 发布:王者传奇手游转生数据 编辑:程序博客网 时间:2024/06/03 19:48
#include<opencv2/opencv.hpp>#include<iostream>#include<vector>using namespace cv;using namespace std;int main(){Mat srcImage = imread("1.jpg");imshow("【原图】", srcImage);//为计算直方图配置变量//首先是需要计算的图像的通道,就是需要计算图像的哪个通道(bgr空间需要确定计算 b或g货r空间)int channels = 0;//然后是配置输出的结果存储的 空间 ,用MatND类型来存储结果MatND dstHist;//接下来是直方图的每一个维度的 柱条的数目(就是将数值分组,共有多少组)int histSize[] = { 256 };//如果这里写成int histSize = 256;   那么下面调用计算直方图的函数的时候,该变量需要写 &histSize//最后是确定每个维度的取值范围,就是横坐标的总数//首先得定义一个变量用来存储 单个维度的 数值的取值范围float midRanges[] = { 0, 256 };const float *ranges[] = { midRanges };calcHist(&srcImage, 1, &channels, Mat(), dstHist, 1, histSize, ranges, true, false);//calcHist  函数调用结束后,dstHist变量中将储存了 直方图的信息  用dstHist的模版函数 at<Type>(i)得到第i个柱条的值//at<Type>(i, j)得到第i个并且第j个柱条的值waitKey(0);return 0;}

0 0
原创粉丝点击