opencv3 绘制一维直方图-灰度直方图的绘制-柱状图
来源:互联网 发布:sqlserver 对等发布 编辑:程序博客网 时间:2024/06/08 02:00
#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[] = { 32 };//如果这里写成int histSize = 32; 那么下面调用计算直方图的函数的时候,该变量需要写 &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个柱条的值//开始直观的显示直方图——绘制直方图//首先先创建一个黑底的图像,为了可以显示彩色,所以该绘制图像是一个8位的3通道图像Mat drawImage = Mat::zeros(Size(256, 256), CV_8UC3);//因为任何一个图像的某个像素的总个数,都有可能会有很多,会超出所定义的图像的尺寸,针对这种情况,先对个数进行范围的限制//先用 minMaxLoc函数来得到计算直方图后的像素的最大个数double g_dHistMaxValue;minMaxLoc(dstHist, 0, &g_dHistMaxValue, 0, 0);//将像素的个数整合到 图像的最大范围内//遍历直方图得到的数据RNG &rng = theRNG();for (int i = 0; i < 32; i++){int value = cvRound(dstHist.at<float>(i) * 256 * 0.9 / g_dHistMaxValue);rectangle(drawImage, Point(i * 8, drawImage.rows - 1), Point(i * 8 + 256 / 32, drawImage.rows - 1 - value), Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)), -1);}imshow("【直方图】", drawImage);waitKey(0);return 0;}
0 0
- opencv3 绘制一维直方图-灰度直方图的绘制-柱状图
- opencv3 绘制一维直方图-灰度直方图的绘制
- opencv3 绘制BGR三色直方图-柱状图
- opencv3 计算一维直方图-灰度直方图的计算
- opencv绘制灰度直方图
- opencv绘制灰度直方图
- img 绘制灰度直方图
- opencv 绘制灰度直方图
- MATLAB中绘制灰度图像的直方图
- opencv——灰度直方图的绘制
- matlab绘制图像的灰度直方图
- 【OpenCV3图像处理】统计图像的直方图 ,绘制直方图
- opencv3 绘制二维直方图-H-S直方图
- opencv3 绘制BGR三色直方图
- 简单的直方图绘制
- 利用OpenCV的calcHist绘制灰度直方图、H-S直方图、BGR直方图和自定义直方图的源码及说明
- 绘制直方图
- 绘制直方图
- RuntimeException和Exception区别(运行时异常和普通异常)
- 一起talk C栗子吧(第五十八回:C语言实例--获取程序当前的工作路径)
- JAVA字符串与字符编码处理的终极解决
- Windows下把文件夹压缩成.tar.gz格式
- 解决问题方法论之化繁为简 - 一道算法题rand5()到rand7()
- opencv3 绘制一维直方图-灰度直方图的绘制-柱状图
- 【深入Java虚拟机】之一:Java内存区域与内存溢出
- 黑马程序员——Java基础---多线程(2)
- opencv3 计算二维直方图-H-S直方图
- ant编译web工程
- codeforces - 326B - Duff in Love(练习)
- iOS开发基本技能之JSON
- Build path entry is missing: org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.
- 关于C/C++一些面试/笔试题的反思(超基础的知识点)