Opencv-contours、minAreaRect测量物体偏转角度(附代码段)
需求目标:检测图像内目标物体的偏转角度
我们要完成所设定的需求目标,我的思路和步骤是这样的:
1.凸显目标
主要方式是使用图像增强等一系列图像处理方法进行调整,使ROI处于较为明显的状态,且没有其余的干扰因素。(不同图像情况不同,不过大同小异,所以没有统一方法,思路是相同的)
2.框住目标
当达到1的要求效果后,使用最小外接矩形将其框住,使用minAreaRect函数。
*重要的是:此时通过findcontours函数可得到对应的轮廓信息点,利用这些点确定最小外接矩形框
画矩形框需要确定其四个顶点,使用boxPoints函数即可得到所需顶点值
特别注意的是得到的值还需要转为int类型。通过for循环结合函数几行代码即可实现:
for c in contours:rect = cv.minAreaRect(c)box = cv.boxPoints(rect)
3.画出矩形框
利用drawcontours函数,传入四个坐标,设定RGB颜色值,调整框线的粗细,就可以框出相应的矩形框。
cv.drawContours(img, [box], 0, (0, 0, 255), 3)
4.计算角度
最小外接矩形返回的有4个顶点顺序、中心坐标、宽度、高度、旋转角度,我们的目的是为了得到旋转角度这一项,得到的是角度而不是弧度,需要通过具体的判断得到结果。
theta = cv.minAreaRect(cnt)[2]
theta1 = cv.minAreaRect(cnt)[2]
if abs(theta) <= 45:print('图片%s的旋转角度为%s.'% (imgs_list[i] ,theta))angle = theta
else:print('图片%s的旋转角度为%s.'% (imgs_list[i],str(90 + theta1)))
其中顺时针旋转角度为正,逆时针旋转角度为负。
这样可以完美的得到目标物体的旋转角度,精度也很高。
本人尚才疏学浅,若有错误感谢指正,若有问题亦可与我交流沟通!
Opencv-contours、minAreaRect测量物体偏转角度(附代码段)相关推荐
- Opencv 图像处理-Contours函数提取轮廓及感兴趣区域ROI的必用且实用操作技巧-(涵盖Contours的一切使用基础,附代码段)
需求目的:一般都是做项目时使用opencv的findcontours和drawcontours搭配使用抓取图像内感兴趣区域. 1.Contours函数轮廓点大小排序 当使用findco ...
- openCV 轮廓查找-测量物体尺寸
一,利用openCV的findContours轮廓查找功能,用已知物体的尺寸(比如硬币)作为参考,根据实际尺寸与像素尺寸的比列,求出图片中物体的实际大小.存在的问题有两个: 图片的阴影导致轮廓不准确, ...
- 一个物体 偏转角度计算
private Vector3 oldVector3; private Vector3 newVector3; private Quaternion oldQuaternion; private Ve ...
- 设备配网和通用配网 UI 业务包(内附代码段)
设备配网UI业务包 智能生活设备配网 UI 业务包的功能涵盖了目前常见的 Wi-Fi 设备.Zigbee 设备.蓝牙设备,并且支持二维码扫码的设备,例如 GPRS 和 NB-IoT 设备.业务包主要实 ...
- OpenCV测量物体的尺寸技能 get~
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 盛年不重来,一日难再晨. 及时当勉 ...
- opencv测量物体的长度
看代码前须知: 需要固定的摄像头来保证拍摄角度一致 需要固定的光源来保证受光面的一致 需要固定的检测物体来保证适应所设定的阈值(主要 灰度阈值) 需要知道一个物体实际的长度与像素之间的比值 方便做 ...
- opencv 通过标定摄像头测量物体大小_解决方案 | 如何用普通手机准确测量物体体积?...
点击上方"计算机视觉life",选择"星标" 快速获得第一手干货 本文授权自机器之心. 最近,菜鸟全球科技挑战赛总决赛落幕.赛题「智能体积测量」关注物流要素「长 ...
- opencv判断 线夹角_python opencv实现直线检测并测出倾斜角度(附源码+注释)
由于学习需要,我想要检测出图片中的直线,并且得到这些直线的角度.于是我在网上搜了好多直线检测的代码,但是没有搜到附有计算直线倾斜角度的代码,所以我花了一点时间,自己写了一份直线检测并测出倾斜角度的代码 ...
- opencv双目视觉标定、匹配和测量 (附代码)
from:https://blog.csdn.net/bcj296050240/article/details/52778741 双目视觉原理方面参照<学习Opencv>和大牛博客 htt ...
最新文章
- 深度学习Github排名,很不错的介绍
- 打分系统php_亚马逊的推荐系统是怎么实现的?
- SpringMVC上传文件以流方式判断类型附常用类型
- 软件工程课堂作业——寻找“水王”
- loadrunner脚本中参数有中文时报错
- JAVA客户端数据传输_java模拟TCP通信实现客户端上传文件到服务器端
- 编译原理—小型(简化)高级语言分析器前端(Java)
- reentrantlock非公平锁不会随机挂起线程?_程序员必须要知道的ReentrantLock 及 AQS 实现原理...
- JMockit 1.37 示例
- 苹果CMS V8 电脑手机自适应电影模板
- Codeforces初体验
- nyoj 86 找球号(一)
- sql中update多表处理
- 2019年1月《语音信号处理》期末考试
- SAP QM 特性导出及定性定量
- 苹果芯片订单立功 台积电股价创新高
- TCP三次握手常见问题
- 学业水平考试b能上985吗_学业水平测试要求
- 【问题篇】免费下载使用RDM
- TQ2440开发板学习纪实(5)--- 设置UART串口,输出Hello World!
热门文章
- Google Map API使用详解(一)——Google Map开发背景知识
- 【专升本】计算机工科专升本考试,英语0基础考试经验分享
- requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容
- bim学习—— 第7章 放置首层门窗
- html左右飘窗高度不一致,飘窗高度偏高应该怎么处理?老师听听傅的经验之谈...
- 本周测试服务器角色转移系统仅开放转入,梦幻西游1月26日维护公告:春节活动测试服放出...
- 达梦数据库迁移教程(Mysql迁移到达梦数据库)
- 财报里的百度智能云,讲出了产业智能化的故事
- 生活在社会边缘的人也要顽强活下去
- 面向对象——抽象类与抽象方法