本文主要是介绍opencv学习日记——绘制娜扎小姐姐图像直方图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
opencv学习日记——绘制图像直方图
一、图像处理结果
二、代码部分
#include<iostream>
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{Mat img = imread("nazha.jpg");Mat img1;resize(img, img1, Size(650, 471));if (img1.empty()){cout << "请输入正确图片";return -1;} Mat gray;//生成灰度图cvtColor(img1, gray, COLOR_BGR2GRAY);Mat hist;const int channels[1] = {0};float inRanges[2] = {0, 255};const float * ranges[1] = {inRanges};const int bins[1] = {256};//calcHist(图像, 图像数量, 通道索引, 掩码, 输出灰度值数组,直方图维度, 灰度值范围 )//Mat()表示整幅图calcHist(&gray, 1, channels, Mat(), hist, 1, bins, ranges);cout << hist << endl;int hist_w = 512;int hist_h = 400;int width = 2;Mat histImage = Mat::zeros(hist_h, hist_w, CV_8UC3);for (int i = 1; i <= hist.rows; i++){//输出直方图图像, 矩形宽是一个像素,高是灰度值,输出为白色rectangle(histImage, Point(width * (i - 1), hist_h - 1), Point(width * i -1, hist_h - cvRound(hist.at<float>(i - 1) / 15)), Scalar(255, 255, 255), -1);}namedWindow("histImage", WINDOW_AUTOSIZE);imshow("histImage", histImage);imshow("gray", gray);waitKey(0);return 0;
}
}
这篇关于opencv学习日记——绘制娜扎小姐姐图像直方图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!