opencv判断一个点是否在轮廓内pointPolygonTest的用法

本文深入解析了OpenCV中的pointPolygonTest函数,该函数用于判断一个点是否位于给定轮廓内部、外部或轮廓上。文章详细介绍了函数的参数设置及返回值意义,特别是measureDist参数如何影响判断结果。

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

OpenCV函数pointPolygonTest():

C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)

用于判断一个点是否在轮廓中 :
当measureDist设置为true时,若返回值为正,表示点在轮廓内部,返回值为负,表示在轮廓外部,返回值为0,表示在轮廓上。
当measureDist设置为false时,若返回值为+1,表示点在轮廓内部,返回值为-1,表示在轮廓外部,返回值为0,表示在轮廓上。

			// 窗口坐标转换图片坐标
				Point2f srcPt;
				srcPt.x = pt.x()*srcSize.width()*1.0 / lbSize.width();
				srcPt.y = pt.y()*srcSize.height()*1.0 / lbSize.height();
				for (int i = 0; i < pointsresult5.size(); i++)
				{
					if (pointPolygonTest(pointsresult5[i], srcPt, false) == 1)
					{
						strRate = QString::number(contourRate[i] * 100)+"%";
						break;
					}			
				}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值