#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("D:/group.jpg", 0);
MatND hist;
const int channels[] = { 0 };
const int histsize[] = { 256 };
const float range[] = { 0., 255. };
const float *ranges[] = { range };
calcHist(&image, 1, channels, Mat(), hist, 1, histsize, ranges);
double min, max;
minMaxLoc(hist, &min, &max);
double rate = 255. / max;
Mat histgram(256, 256, CV_8U, Scalar(255));
//Mat histagram(Size(255, 255), CV_8U, Scalar(255));
for (int i = 0;i < 255; i++)
{
//line(histagram, Point(i, 255), Point(i, 255 - hist.at<float>(i)*rate), Scalar(0));
line(histgram, Point(i, 255), Point(i, 255 - hist.at<float>(i)*rate), Scalar(0));//函数形参和实参类型必须一致,float和const类型不可以写错
}
namedWindow("histgram");
//namedWindow("histagram");
imshow("histgram", histgram);
//imshow("histagram", histagram);
waitKey(0);
return 0;
}
calcHist()直方图
最新推荐文章于 2024-08-19 11:54:51 发布