opencv(c++)点到线段(非直线)的距离求解

@TOC

使用背景

 笔者在求解点和直线匹配问题中遇到了,无法使用点到直线距离的情况.
 直线的和线段的本质区别就在与直线是无限延伸的,所以你的点总可以找到一个垂足做出距离,但是对于线段来说是当线在直线外时会存在三种情况,接下来一次介绍.

原理简介

在这里插入图片描述
 由图简单可知一共三种情况,第一种距离为点到直线的距离,后面两种分别是AP和BP和长度,使用向量知识的知识可以进行具体的推导,这里不再细说,有兴趣的同学可以自己查阅,这里直接贴上可用完整函数代码,经过多次测验,代码由c++写成,使用了opencv库中的点Point2d.

实现代码

/*
求点到线段的距离
使用方法 distance (P ,A ,B) P为待测点,AB为线段起始点
*/

double distance(Point2d P,Point2d A,Point2d B)
{
   
   

	//计算r |AB| |AP| |BP| |PC|
	
	double ab =	sqrt(pow((B.x-A.x),2) +pow(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值