当前位置: 首页 > article >正文

OpenCV直方图计算

#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;
}


http://www.kler.cn/news/294138.html

相关文章:

  • neon指令
  • 【Moveit2官方教程】使用 MoveIt Task Constructor (MTC) 框架来定义和执行一个机器人任务
  • 奇异递归模板模式(Curiously Recurring Template Pattern)
  • 未雨绸缪:环保专包二级资质续期工程师招聘时间策略
  • Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图
  • TYPE-C USB设计
  • [数据集][目标检测]轮胎检测数据集VOC+YOLO格式4629张1类别
  • 等保测评:如何构建安全的远程工作环境
  • 工作:GX WORKS标签的分类
  • Seata环境搭建
  • Unity TMP (TextMeshPro) 更新中文字符集
  • IDEA取消自动选择光标所在行
  • go面试:说一下 GMP 模型的原理
  • 关于IDEA的快捷键不能使用的原因
  • jQuery基础——Ajax
  • 如何免费将视频转换为 MP4?将视频转换为 MP4 的 5 种方法
  • Linux——redis主从复制、哨兵模式
  • Java程序分析工具
  • Python 操作大数据使用 Hadoop
  • Unity3D在2D游戏中获取触屏物体的方法
  • 做运营,发布时间很重要
  • Android Studio更新代码可正常运行但IDE报红
  • 【保姆级教程】使用 PyTorch 自定义卷积神经网络(CNN) 实现图像分类、训练验证、预测全流程【附数据集与源码】
  • 【量化部署】AWQ in MLSys 2024
  • 如何查找 Docker 容器的 IP 地址 ?
  • #include <iostream>介绍
  • Linux日志-journal日志
  • 【uni-app】通过 HBuilderX 创建 uni-app vue3项目
  • 2024年架构设计师论文-“模型驱动架构设计方法及其应用”
  • 【MATLAB】矩阵的合并