opencv 如何提取旋转矩形的ROI
2016-03-22 17:17
351 查看
原文地址:http://zhidao.baidu.com/link?url=Y3z26Y6Ik8lBMssFBM0xhqxKW2i8y2pb5rWkPEhwZpV2b0lwRsfwMxSRlf1oqjrv2w8eIe6qcNQ6qOkyyX5Tba
![](http://c.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=7f8a48113801213fcf6646da64d71ae9/4e4a20a4462309f762c8d1da730e0cf3d6cad657.jpg)
如图,想这样的一幅图片,我得到的是RotatedRect结构的旋转矩形。现在有两个问题:
我如何把这个旋转矩形(包含轮廓信息啦)保存到另一个Mat中,opencv中有提取ROI是对rect来说的,旋转的矩形就不知道怎么办了
如果得不到这个旋转矩形的话,那么有没有办法计算轮廓到边界框的距离呢——就是轮廓上的点分别到四个边界框的距离。
![](http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=9866fdbd42a98226b8942321bab29539/c8177f3e6709c93d036d713f9e3df8dcd000545e.jpg)
像这种正规的直上直下的矩形框到边界的距离可以通过访问像素得到,但是像旋转后的又如何得到距离呢?因为毕竟访问像素不大可行了呀
![](http://c.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=7f8a48113801213fcf6646da64d71ae9/4e4a20a4462309f762c8d1da730e0cf3d6cad657.jpg)
如图,想这样的一幅图片,我得到的是RotatedRect结构的旋转矩形。现在有两个问题:
我如何把这个旋转矩形(包含轮廓信息啦)保存到另一个Mat中,opencv中有提取ROI是对rect来说的,旋转的矩形就不知道怎么办了
如果得不到这个旋转矩形的话,那么有没有办法计算轮廓到边界框的距离呢——就是轮廓上的点分别到四个边界框的距离。
![](http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=9866fdbd42a98226b8942321bab29539/c8177f3e6709c93d036d713f9e3df8dcd000545e.jpg)
像这种正规的直上直下的矩形框到边界的距离可以通过访问像素得到,但是像旋转后的又如何得到距离呢?因为毕竟访问像素不大可行了呀
1 使用RotatedRect minAreaRect(InputArray points)获取这个旋转矩形 2 将其四角存到某vector<Point>里面,变成一个轮廓,怎么获取四角?参见http://docs.opencv.org/modules/core/doc/basic_structures.html?highlight=rotatedrect#RotatedRect 你一定能搞出来。 3 然后遍历内部那个轮廓的各个点,然后使用pointPolygonTest这个opencv函数确定此点与四边形的距离。 4 要注意的是因为点在轮廓内部,所获距离为负数。
相关文章推荐
- docker 私有仓库镜像的存储位置
- docker 私有仓库镜像的存储位置
- docker 私有仓库镜像的存储位置
- 每天一个linux命令(60):scp命令
- Docker数据管理
- Linux下multipath多路径配置
- LinuxC(环境变量、动态库)
- LinuxC(Unix/Linux系统简介/开发工具)
- Nginx 作为 WebSockets 代理
- 权限管理课堂笔记
- 基于tiny4412的Linux内核移植(支持device tree)(三)
- Hadoop模板(新API)
- 基于tiny4412的Linux内核移植(支持device tree)(二)
- Hadoop程序基础模板
- 基于tiny4412的Linux内核移植(支持device tree)(一)
- linux用sendmail发邮件
- OPENCV之GFTT特征点检测
- 编译 Linux 3.5 内核烧写 Android 到tiny4412
- 《软件架构设计》学习笔记--2--软件架构概念
- Hadoop简介