学习OpenCV(五)

本文深入探讨了图像处理中直方图的概念,并通过实例介绍了如何使用OpenCV库中的cv::calcHist()、cv::minMaxLoc()、cv::LUT()和cv::threshold()函数来获取、分析和修改图像直方图。同时,展示了如何利用这些函数进行图像像素的调整,如阈值处理和线绘制,旨在帮助读者掌握图像处理的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直方图涉及的函数(一):

int    histSize[1] ;
	float  hranges[2] ;
	const float * ranges[1] ;
	int    channels[1] ;

函数:cv::calcHist()获取图像直方图

cv::calcHist(&image,
1,            // histogram of 1 image only
channels,     // the channel used
cv::Mat(),    // no mask is used
hist,         // the resulting histogram
3,           // it is a 3D histogram
histSize,    // number of bins
ranges       // pixel value range
);

函数:cv::minMaxLoc()获取图像矩阵中的最大最小值

cv::MatND hist = getHistogram(image) ;

		double maxVal = 0 ;
		double minVal = 0 ;

		cv::minMaxLoc(hist , &minVal , &maxVal , 0 , 0) ;//获取最大值最小值

函数:cv::LUT()修改图像像素值Look Up Table

cv::LUT(image , lookup , result) ;//lookup是掩码

函数:cv::threshold()设置图像门限值

cv::Mat thresholded ;
// 	cv::threshold(image , thresholded , 
// 		60.0 , 255.0 , cv::THRESH_BINARY) ;//60.0为分界线小于60.0为0,大于为255只有黑白两色


函数:cv::line()第一个参数是图像矩阵,第二,第三个参数是线两端,第四个参数是线上线上颜色,画图坐标左上角为(0 , 0)Y轴方向向下

cv::line(histImg , cv::Point(h , histSize[0]) ,
				cv::Point(h , histSize[0] - intensity) ,
				cv::Scalar::all(0)) ;//画白色的线



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值