代码主要来自于毛星云的opencv3编程入门,自己重新把几个代码组合在一起。
作用:
实现RGB图片滤波前和滤波后图片直方图显示。
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
//-------------------------------------------------载入图像并显示其RGB直方图-------------------------------------------------------------------
//载入素材图像并显示
Mat image1 = imread("1.jpg");
imshow("原图", image1);
//参数准备
int bins = 256;
int hist_size[] = { bins };
float range[] = { 0,256 };
const float* ranges[] = { range };
MatND redHist1, grayHist1, blueHist1;
int channels_r[] = { 0 };
//进行直方图的计算(红色部分)
calcHist(&image1, 1, channels_r, Mat(),
redHist1, 1, hist_size, ranges,
true, false);
//进行直方图的计算(绿色部分)
int channels_g[] = { 1 };
calcHist(&image1, 1, channels_g, Mat(),
grayHist1, 1, hist_size, ranges,
true, false);
//进行直方图的计算(蓝色分量部分)
int channels_b[] = { 2 };
calcHist(&image1, <