rgb三色直方图的绘制
三色和单色是一致的:程序的写法在下一个CSDN
不仅仅是RGB还有HSV图像都会有比较重要的画法:色调,饱和度,亮度
绘制三色直方图还是三种向量的直方图都会有意义:
1.参数准备:
int bins=256;每一个分量都是256的
int hist_size[]={bins};
float range[]={0,256};
const float* ranges[]={range};
MatND redHist,greenHist,blueHist;
int channels_r[]={2};
int channels_g[]={1};
int channels_b[]={0};
calcHist(&rgb图像,1,channel_r,Mat(),redHist,1,hist_size,ranges,true,false);得到红色分量的直方图
calcHist(&rgb图像,1,channel_g,Mat(),greenHist,1,hist_size,ranges,true,false);得到绿色分量的直方图
calcHist(&rgb图像,1,channel_b,Mat(),blueHist,1,hist_size,ranges,true,false); 得到蓝色分量的直方图
//得到各个分量的直方图
2.获取各个直方图中的最大值和最小值
double max_Value_red,max_Value_green,max_Value_blue;
minMaxLoc(redHist,0,&max_Value_red,0,0);
minMaxLoc(blueHist,0,&max_Value_blue,0,0);
minMaxLoc(greenHist,0,&max_Value_green,0,0); //得到三个分量的最大值,也就是点数最多的像素点
3.绘制三个分量的直方图
定义要显示的直方图:
Mat histImg=Mat::zeros(256,2563,CV_8UC3);把三个分量的直方图绘制在一个图片上面
for(int i=0;i<bins;i++)
{
获取各个分量的实际的数值
float binValue_red=redHist.at(i);
float binValue_green=greenHist.at(i);
float binValue_blue=blueHist.at(i);
要绘制的高度,对于每一个分量来说的
int intensty_red=cvRound(binValue_red256/max_Value_red);红色分量要绘制的高度
int intensity_green=cvRound(binValue_green256/max_Value_green);绿色分量的高度
int intensity_blue=cvRound(binValue_blue256/max_Value_blue);蓝色分量对应的高度
用矩形进行绘制
红色分量的绘制
rectangle(histImg,Point(i,255),Point(i,256-intensity_red),Scalar(0,0,255));
rectangle(histImg,Point((i+256,255),Point(i+256,256-intensity_green),Scalar(0,255,0));
rectangle(histImg,Point(i+2256,255),Point(i+2256,256-intensity_blue),Scalar(255,0,0));
}
这就进行绘制完毕了
4.最后一步了:显示绘制好的三色直方图
rgb三色直方图的绘制相关推荐
- 【Opencv入门】RGB三通道直方图的计算与绘制
文章目录 一. 直方图概述 Overview of histogram 二.直方图的建立 Establishment of histogram 三.直方图的作用 The function of his ...
- 智能wifi小车-RGB三色LED灯驱动
RGB三色LED灯简介 RGB指的就是三基色光,R=红色,G=绿色,B=蓝色.LED芯片所发出的光一般都是蓝光,都是要通过红 绿 蓝这三种颜色的荧光粉去调颜色的.RGB色彩模式是工业界的一种颜色标准, ...
- RGB三色查询对照表
给大家推荐一个 RGB三色查询对照表 可以根据代码选颜色,也可以根据颜色找代码.很不错哦 http://www.ydyrx.com/rgb.html
- photoshop中RGB三色原理及颜色相加相减
From: http://blog1.poco.cn/myBlogDetail-htx-id-5921820-userid-55622677-pri--n-0.xhtml 一.RGB三色原理 在中学的 ...
- Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块
该系统模块主要由Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所组成,MQ-2烟雾浓度传感器 ...
- matlab绘制三维散点图,RGB三色对应xyz轴
一.代码 a=xlsread('C:\Users\hasee\Desktop\纺院 - 副本\江南 OK.xlsx','sheet1'); x1=a(:,7); y1=a(:,8); z1=a(:,9 ...
- rgb三色涂色问题--c++
有排成一行的n个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法. #include <i ...
- RGB图像灰度直方图的绘制
一.描述 一幅图像的整个直方图我们一般不难画,本篇分享一下三通道分开的灰度直方图,包含三个分开的和三个画在一起的. 二.代码编写 三通道灰度直方图绘制代码(含解释)Opencv中的cv2.calcHi ...
- Arduino控制RGB三色LED灯实验、程序代码、连线图、仿真
目录 RGB三色灯简介 PWM控制 PWM功能简介 硬件电路连接 所需器件 控制代码 测试结果 RGB三色灯简介 RGB色彩模式包含红绿蓝三种,通过控制红(R).绿(B).蓝(G)三种颜色的变化使其相 ...
最新文章
- python三方库 importlib导入API用法 相对导入 绝对导入
- 输入/输出延迟单元( IODELAY)简介
- NFV — 安全策略
- ubuntu vi 按方向键出现很多字母是怎么回事?(没安装vim)
- 银行有没有可能把800元存款打成80万?如果发生该怎么办?
- 每日一题:leetcode90.子集贰
- php 自定义行间距,phpstorm 常见设置
- 外存中的对换区和文件区
- 单细胞转录组基本概念(一)
- 【Spring】Spring lazy-init:bean延迟初始化
- 幽灵java进程引起的: FATAL ERROR in native method
- ParNew垃圾回收器总结
- php adodb类库下载,PHP中 ADOdb 类库介绍(二)
- 你想要的英雄联盟人物模型素材,这里都能找到
- express 配置ip
- 在服务端录制语音视频
- 数据采集系统有哪几种采集方式?
- ResNet论文笔记及Pytorch代码解析
- 京东2018校招研发笔试题记录
- 多核程序设计 linux,多核程序设计Linux多线程编程.ppt
热门文章
- 关键路径中最早/迟发生时间
- 3DCAD图纸转2D(DXF)图纸通用解决方案文稿
- axure图表_最好用的数据可视化图表制作工具推荐
- 后台产品的数据可视化图表产品设计
- MySQL高可用系列之MHA(二)
- 全息与沙盘的融合,全息沙盘带来全新体验
- RDLC打印或导出Word的 分页设置 页边距和页面大小
- 新一代记事本“Notepad++”个性化设置备份
- repost 力出一孔,“感觉睡觉都是在浪费时间”--孙正义
- LNMP一键安装包 – 简单单单配置好linux服务器