OpenCV直方图计算

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <vector>

using namespace cv;
using namespace std;

int main()
{
	cout << "直方图calcHist" << endl;

	Mat src = imread("left.png", IMREAD_GRAYSCALE);
	if (src.empty())
	{
		cout << "read image failed." << endl;
		return -1;
	}
	imshow("gray_img", src);
	
	Mat hist;
	int histSize = 256;
	calcHist(&src, 1, 0, Mat(), hist, 1, &histSize, 0);

	double maxVal = 0;
	double minVal = 0;
	minMaxLoc(hist, &minVal, &maxVal, 0, 0);
	int zoom = 2;
	Mat histImg(histSize * zoom, histSize * zoom, CV_8U, Scalar(255));
	int hpt = static_cast<int>(0.9 * histSize);
	for (int h = 0; h < histSize; h++)
	{
		float binVal = hist.at<float>(h);
		if (binVal > 0)
		{
			int intensity = static_cast<int>(binVal * hpt / maxVal);
			line(histImg, Point(h * zoom, histSize * zoom), Point(h * zoom, (histSize - intensity) * zoom), Scalar(0), zoom);
		}
	}
	imshow("hist_img", histImg);

	cout << "直方图均衡化equalizeHist" << endl;
	Mat result;
	equalizeHist(src, result);
	imshow("equalizeHist", result);

	cout << "直方图反向投影calcBackProject" << endl;
	Mat imageROI = src(Rect(400,20,150,80));
	Mat hist2;
	calcHist(&imageROI, 1, 0, Mat(), hist2, 1, &histSize, 0);
	normalize(hist2, hist2, 1.0);
	Mat backP;
	calcBackProject(&src, 1, 0, hist2, backP, 0, 255.0);

	Mat mask;
	threshold(backP, mask, 30, 255, THRESH_BINARY);
	imshow("backProject", mask);

	cout << "积分图像" << endl;
	Mat integralImg;
	integral(src, integralImg, CV_32S);

	waitKey();

	return 0;
}
相关推荐
AI的探索之旅12 小时前
97 个 OpenCV 实例(三十七):二维码识别,一张图四个码的陷阱
c++·opencv·计算机视觉
≮傷£≯√3 天前
OpenCV 边缘检测 Canny
人工智能·opencv·计算机视觉
≮傷£≯√4 天前
opencv 图像处理(一)
图像处理·人工智能·opencv
sali-tec4 天前
C# 基于OpenCv的视觉工作流-章114-视觉与http通讯
图像处理·人工智能·opencv·计算机视觉·c#
ahccqw4 天前
Opencv 基础常用API
人工智能·opencv·计算机视觉
2601_967987374 天前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
zhippt_10144 天前
图转PPT实测:截图、课件照片如何还原成可编辑幻灯片
opencv·powerpoint
W_326005 天前
Python 图像处理第二十八章|OpenCV 形态学操作进阶:腐蚀、膨胀、开运算、闭运算、梯度、顶帽黑帽
图像处理·人工智能·python·opencv·计算机视觉
代码山河5 天前
图像基础:HSV颜色空间详解及颜色提取实战
opencv·目标检测·计算机视觉·教程
再__努力1点6 天前
RK3576/RV1126B多路视频 AI 开源引擎 CosmoEdge:从模型到交付,轻松搞定!
人工智能·opencv·计算机视觉·架构·课程设计