calcHist

29 篇文章 1 订阅
Mat img = (Mat_<uchar>(9, 12) <<
		1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		4, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		7, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		8, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
		9, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
		);
	//灰度值有效范围是1~12,所以设定为hr1[]={1,13};矩阵b的灰度值有效范围是1<=V<13
	float hr1[] = { 1,13 };

	//将灰度范围均分为3部分,三个直方条取值范围分别为:第1部分1~4,第2部分5~8,第3部分9~12。
   //因此令histSize[1]={3},这里的3意味着整个图像灰度范围1~12被均分为3部分,分别统计像素个数。
	int histSize[1] = { 3 };

	int channels[1] = { 0 };
	
	const float* ranges[] = { hr1 };

	Mat hist;
	calcHist(&img, 1, channels, Mat(), hist, 1, histSize, ranges, true);
	
	//其中hist输出的是1-4,5-8,9-12区域中像素值的个数统计,且分别是31,40,37
	//且Mat的内容--> 行:直方图个数,列:1

	cout << "hist=" << endl << hist << endl;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值