#include #include#include#include#include#include#include#include#include
using namespacecv;using namespacestd;//单通道图片直方图绘制
void drawHist(vectornums)
{
Mat hist= Mat::zeros(600, 800, CV_8UC3);
auto Max= max_element(nums.begin(), nums.end());//max迭代器类型,最大数目
putText(hist, "Histogram", Point(150, 100), FONT_HERSHEY_DUPLEX, 1, Scalar(255, 255, 255));//*********绘制坐标系************// Point o = Point(100, 550);
Point x= Point(700, 550);
Point y= Point(100, 150);//x轴
line(hist, o, x, Scalar(255, 255, 255), 2, 8, 0);//y轴
line(hist, o, y, Scalar(255, 255, 255), 2, 8, 0);//********绘制灰度曲线***********// Point pts[256];//生成坐标点
for (int i = 0; i < 256; i++)
{
pts[i].x= i * 2 + 100;
pts[i].y= 550 - int(nums[i]*(300.0/(*Max)));//归一化到[0, 300]//显示横坐标
if ((i + 1) % 16