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

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值