opencv图像灰度重心算法

介绍了一种灰度重心法,该方法适用于亮度不均匀的目标,通过计算光强权重质心坐标来实现精确跟踪。对于M*N大小的图像,通过灰度值超过阈值的像素参与重心计算。
📄 AI 智能文档扫描仪 -

基于OpenCV透视变换算法,提供文档自动扫描与矫正服务,支持边缘检测、歪斜拉直及去阴影增强,集成WebUI,纯算法零依赖版

  导师交给的项目,其中一步就是求光斑的重心,网上有很多关于重心的代码,大体是利用cvFindContour函数找出图像的轮廓,然后将图像阈值分割,二值化处理。这样处理后图像的灰度值只有0和1两个值,丢失了很多灰度信息,这样找出来的重心实际上是轮廓几何图形的形心,灰度值的影响并没有反应出来。

  下面介绍一下灰度重心法:

  对于亮度不均与的目标,灰度重心法可按目标光强分布求出光强权重质心坐标作为跟踪点,也叫密度质心算法。对于衣服M*N大小的图像f,像素的灰度值凡超过阈值T的均参与重心处理,于是重心坐标为:




Xi表示第i行的坐标,Xj表示第j行的坐标,f(i,j)表示第i行第j列的像素值。

CvPoint grayCenter(IplImage* TheImage)
{
	//灰度重心法求质心
	CvPoint Center;
	int i, j;
	CvScalar cs = cvSum(TheImage);
	Center.x = Center.y = 0;
	double x = 0;
	double y = 0;
	for(i = 0;i < TheImage->width;i++)
	{
		for(j = 0; j < TheImage->height;j++)
		{
			CvScalar s = cvGet2D(TheImage, j,i);
			x += i*s.val[0]/cs.val[0];
			y += j*s.val[0]/cs.val[0];
		}
	}
	Center.x = cvRound(x);
	Center.y = cvRound(y);

	return Center;
}


您可能感兴趣的与本文相关的镜像

📄 AI 智能文档扫描仪 -

📄 AI 智能文档扫描仪 -

图片编辑
Python
PyTorch

基于OpenCV透视变换算法,提供文档自动扫描与矫正服务,支持边缘检测、歪斜拉直及去阴影增强,集成WebUI,纯算法零依赖版

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值