赞
踩
- #include<opencv2/opencv.hpp>
- #include<iostream>
- #include<vector>
-
- using namespace cv;
- using namespace std;
-
- int main()
- {
- Mat srcImage = imread("1.jpg");
- imshow("【原图】", srcImage);
-
- Mat hsvImage;
- //因为要计算H-S的直方图,所以需要得到一个HSV空间的图像
- cvtColor(srcImage, hsvImage, CV_BGR2HSV);
- imshow("【HSV空间的原图】", hsvImage);
-
- //为计算直方图配置变量
- //首先是需要计算的图像的通道,就是需要计算图像的哪个通道(bgr空间需要确定计算 b或g货r空间)
- int channels[] = { 0, 1 };
- //然后是配置输出的结果存储的 空间 ,用MatND类型来存储结果
- MatND dstHist;
- //接下来是直方图的每一个维度的 柱条的数目(就是将数值分组,共有多少组)
- //如果这里写成int histSize = 256; 那么下面调用计算直方图的函数的时候,该变量需要写 &histSize
- int histSize[] = { 30, 32 };
- //最后是确定每个维度的取值范围,就是横坐标的总数
- //首先得定义一个变量用来存储 单个维度的 数值的取值范围
- float HRanges[] = { 0, 180 };
- float SRanges[] = { 0, 256 };
- const float *ranges[] = { HRanges, SRanges };
-
- calcHist(&hsvImage, 1, channels, Mat(), dstHist, 2, histSize, ra

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。