判断一个点是否在RotatedRect中
openCV函数pointPolygonTest():
C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)
用于判断一个点是否在轮廓中
当measureDist设置为true时,若返回值为正,表示点在轮廓内部,返回值为负,表示在轮廓外部,返回值为0,表示在轮廓上。
当measureDist设置为false时,若返回值为+1,表示点在轮廓内部,返回值为-1,表示在轮廓外部,返回值为0,表示在轮廓上。
例:
……/// 查找轮廓std::vector<std::vector<cv::Point> >
contours;
cv::Mat src;
//src为输入图像
cv::findContours( src, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE,Point(0,0));
//判断p1(x,y)是否在轮廓内
cv::Point p1(x,y);
if (pointPolygonTest(Contours[j],cv::Point(x1,y1),false) == 1)
{
cout<<p1<<"在轮廓内"<<endl;
}
……
但是这个函数是用来处理“轮廓”,也就是点的集合的;对于这里RotatedRect,它本身只是一个OpenCV的数据结构,所以我们如果想使用pointPolygonTest,就需要首先将RotatedRect转换为轮廓。对于RotatedRect,其实转换很简单,直接将它的四个角的坐标塞到一个Vector<point>里面就可
bool DoesRectangleContainPoint(RotatedRect rectangle, Point2f point) {
//Get the corner points.
Point2f corners[4];
rectangle.points(corners);
//Convert the point array to a vector.
//https://stackoverflow.com/a/8777619/1997617
Point2f* lastItemPointer = (corners + sizeof corners / sizeof corners[0]);
vector<Point2f> contour(corners, lastItemPointer);
//Check if the point is within the rectangle.
double indicator = pointPolygonTest(contour, point, false);
bool rectangleContainsPoint = (indicator >= 0);
return rectangleContainsPoint;
}
判断一个点是否在RotatedRect中的更多相关文章
- js判断一个元素是否在数组中
js判断一个元素是否在数组中 var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//循环的方式 function isInAr ...
- 【JS】【6】判断一个元素是否在数组中
摘要: 有三种方式: 1,jquery的inArray方法 2,数组的indexOf方法 3,普通的for循环方法 正文: 1,jquery的inArray方法 /** * @param {Objec ...
- python中如何不区分大小写的判断一个元素是否在一个列表中
python中判断某一个元素是否在一个列表中,可以使用关键字in 和 not in. 示例如下: 如果需要输出相应的信息,可以搭配使用if语句,这里不赘述. --------------------- ...
- indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. let a = [2, 9, 7, 8, 9]; a.indexOf(2); // 0 a.indexOf ...
- jquery 判断一个元素是否在数组中 $.inarry()使用
需要判断一个元素是否在一个数组里: js indexOf()方法 如果存在 则返回该元素的下标值 如果不存在则返回-1 学习源头: http://www.w3school.com.cn/jsref/ ...
- Python3基础 in 列表名 判断一个元素是否在列表中
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- Revit API 判断一个构件在某个视图中的可见性
查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现 ...
- Python3基础 list in/not in 判断一个变量是否在列表中存在
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- JavaScript 中 如何判断一个元素是否在一个数组中
<script type="text/javascript"> var arrList=['12','qw','q','v','d','t']; console.log ...
随机推荐
- Kotlin 范型约束
官方的示意及其简约,该说的一概没说 我在这里给大家一个完整的例子 //test.kt fun <T> cloneWhenGreater(list: List<T>, thres ...
- iOS UI基础-9.2 UITableView 简单微博列表
概述 我们要实现的效果: 这个界面布局也是UITableView实现的,其中的内容就是UITableViewCell,只是这个UITableViewCell是用户自定义实现的.虽然系统自带的UITab ...
- UGUI实现摇杆
效果图
- redhat7.5在H3C机器上黑屏无显
现象:H3C机器上,PXE安装/ISO安装系统,多用户模式启动,过内核启动界面后,屏幕黑屏无显,但是可以通过SSH登陆系统,服务正常 环境:redhat7.5/H3C R4900G3/Purely平台 ...
- laravel学习历程
1.www目录下拉下来一个laravel框架 composer create-project laravel/laravel laravelapp --prefer-dist laravelapp 为 ...
- C# 语言 - 一个优雅的分页实现
这篇文章介绍分页对象的封装,如何优雅的对数据进行分页. 先上调用代码: 我们希望能在一个Enumerable对象后面直接.ToPagedList(pageIndex,pageSize)这样优雅的调用分 ...
- Mockito/PowerMockito Straige Issues
http://blog.csdn.net/xiaoyaoyulinger/article/details/52415494 http://breezylee.iteye.com/blog/208843 ...
- ueditor上传图片配置成功,但是如何删除无用的图片
我使用ueditor作为富文本编辑器,配置已经好了,上传功能也好了.现在的问题是当使用ueditor上传图片的时候,选择了图片就立刻上传到指定的文件夹里,而后续即使没有保存该篇文章内容,即取消操作,图 ...
- pdf转txt
ubuntu pdf转jpg或txt chenlei posted @ 2009年12月30日 17:22 inLinux , 1818 阅读 呵呵,刚刚在网上定购了一款mp5,后来才发现它不支持PD ...
- HTML/HTML5 Input类型&&表单
1.HTML 中"不常用"input类型中的属性值: disabled:输入字段禁用: maxlength:输入字段的最大字符长度: readonly:输入字符只读,无法修改: s ...