【 OpenCV】——灰度直方图
【 OpenCV】——灰度直方图
前言
本文介绍了灰度直方图的基础内容。
对函数参数的解释
void calcHist
{
const Mat*images,//输入的矩阵数组或数据集
int nimages,//输入数组的个数
const int *channels,//计算直方图的通道个数
InputArray mask,//可选的操作掩码,用于标记出统计直方图的数组元素数据
OutputArray hist,//输出的目标直方图
int dims,//直方图的维数
const int *histSize,//直方图每个维度的大小
const float **ranges,//每一维数值的取值范围
bool uniform=true,//表示是否进行归一化,默认为true
bool accumulate=false //累计标识符(默认为false),主要是允许多从个阵列中计算单个直方图
//或者用于在特定的时间更新直方图
}
使用步骤
##1.引入库
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2\imgproc\types_c.h>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{Mat img;img = imread("F:\\专高CV2\\图片\\520.jpg");imshow("原图", img);Mat hui;cvtColor(img, hui, CV_BGR2GRAY);int bins = 256;int hist_size[] = { bins };float range[] = { 0,256 };const float *ranges[] = { range };MatND hist;int channels[] = { 0 };//计算出灰度直方图calcHist(&hui, 1, channels, Mat(), hist, 1, hist_size, ranges);//画出直方图double max_val;minMaxLoc(hist, 0, &max_val, 0, 0);//定位矩阵中最小值、最大值的位置int scale = 2;int hist_height = 256;Mat hist_img = Mat::zeros(hist_height, bins*scale, CV_8UC3);//创建一个全0的特殊矩阵for (int i = 0; i < bins; i++){float bin_val = hist.at<float>(i);int inten = cvRound(bin_val*hist_height / max_val);//要绘制高度//画矩形rectangle(hist_img, Point(scale*i, hist_height - 1), Point((i + 1)*scale - 1, hist_height - inten), CV_RGB(255, 255, 255));}imshow("灰度直方图", hist_img);waitKey(0);
}
效果图展示
总结
以上是一个简单的灰度直方图展示。
【 OpenCV】——灰度直方图相关推荐
- python绘制灰度图片直方图-python+opencv 灰度直方图及其二值化
图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度图像之后,统计各个像 ...
- OpenCV 灰度直方图
什么是直方图? 直方图是对图像的另一种解释.通过直方图你可以对整幅图像的灰度分布有一个整体的了解.直方图的x轴是灰度值,y轴是图片中具有统一灰度值得点的数目. 直方图中的两个定义: BINS:一个小组 ...
- python绘制灰度直方图_python+opencv 灰度直方图及其二值化
图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度图像之后,统计各个像 ...
- OpenCV灰度直方图
一. 直方图的定义.意义和特征 1. 定义 在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像.视频帧)和样本的某中属性(亮度,像素值,梯度,方向, ...
- opencv python matplotlib.pyplot.hist() 如何绘制灰度直方图,如何根据灰度直方图确定最优二值化值
什么是灰度直方图? 图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度 ...
- [Python图像处理] 三十七.OpenCV直方图统计两万字详解(掩膜直方图、灰度直方图对比、黑夜白天预测)
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- [Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- OpenCV:实现灰度直方图和单通道直方图拉伸
原文链接:http://blog.csdn.net/xiaowei_cqu/article/details/7600666 本文略有修改,如有疑问或者版权问题,请移步原作者或者告知本人. 直接贴代码: ...
- 【OpenCV 例程200篇】45. 图像的灰度直方图
[OpenCV 例程200篇]45. 图像的灰度直方图 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像直方图是反 ...
- python 灰度直方图_python3+opencv 使用灰度直方图来判断图片的亮暗操作
1.如何让计算机自动判断一张图是否偏暗?或是判断一张图是否是处于夜晚?我们可以先把图片转换为灰度图,然后根据灰度值的分布来判断,如: 我们可以从上图看到,晚上的图片的灰度值是集中在前段的,如0~30多 ...
最新文章
- 形态学处理:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽
- crontab简单示例
- boost::geometry::enrich_intersection_points用法的测试程序
- php实现下单成功提示语,推荐10款提示语源码(收藏)汇总
- linux进程cpu资源分配命令nice,renice,taskset
- Spring Boot集成Debezium监控数据库变化
- Android之如何用dextra.ELF64查看安卓手机“设置“图标的源代码
- java javadoc_使用Java 9向Javadoc搜索添加术语
- python 中的eval与exec
- ISV客户博客系列:Persistent Systems 使用Windows Azure交付基于Java的CloudNinja项目
- python网络通信传输的数据类型_Python网络编程中的网络数据和网络错误。
- JavaScript HTML5脚本编程——“跨文档消息传递”的注意要点
- 高中计算机编程软件vb,高中年级VB程序设计全套教案.doc
- 虚幻引擎3的代码讲解
- 通过自定义View了解MeasureSpecMode
- 计算机共享文件误删怎么恢复,电脑数据恢复分享:电脑文件删除了怎么恢复
- HaaS EDU场景式应用整体介绍
- RabbitMQ Applying plugin configuration to rabbit@xxx... Plugin configuration unchanged.
- 将汉字数字转换成数字
- 腾讯派息式减持京东,中国“伯克希尔”的投资策略变的逻辑是?
热门文章
- 这个库能轻松解决98%的异步和逻辑加载时机问题(异步篇)
- 解决中文乱码问题--response.addHeader/setHeader
- 基本网页布局(DIV+CSS)
- 算法学习 - 归并排序
- [附源码]计算机毕业设计JAVA农村留守儿童援助信息系统论文2022
- 关于基因的那些事(1)
- redisObject详解
- iPhone4怎么换铃声
- python中查看关键字需要在python解释器中执行_Day09-python基础之Cpython解释器支持的进程与线程...
- HTML块级元素、行内元素和行内块元素