需求目标:检测图像内目标物体的偏转角度

我们要完成所设定的需求目标,我的思路和步骤是这样的:

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测量物体偏转角度(附代码段)相关推荐

  1. Opencv 图像处理-Contours函数提取轮廓及感兴趣区域ROI的必用且实用操作技巧-(涵盖Contours的一切使用基础,附代码段)

            需求目的:一般都是做项目时使用opencv的findcontours和drawcontours搭配使用抓取图像内感兴趣区域. 1.Contours函数轮廓点大小排序 当使用findco ...

  2. openCV 轮廓查找-测量物体尺寸

    一,利用openCV的findContours轮廓查找功能,用已知物体的尺寸(比如硬币)作为参考,根据实际尺寸与像素尺寸的比列,求出图片中物体的实际大小.存在的问题有两个: 图片的阴影导致轮廓不准确, ...

  3. 一个物体 偏转角度计算

    private Vector3 oldVector3; private Vector3 newVector3; private Quaternion oldQuaternion; private Ve ...

  4. 设备配网和通用配网 UI 业务包(内附代码段)

    设备配网UI业务包 智能生活设备配网 UI 业务包的功能涵盖了目前常见的 Wi-Fi 设备.Zigbee 设备.蓝牙设备,并且支持二维码扫码的设备,例如 GPRS 和 NB-IoT 设备.业务包主要实 ...

  5. OpenCV测量物体的尺寸技能 get~

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 盛年不重来,一日难再晨. 及时当勉 ...

  6. opencv测量物体的长度

    看代码前须知: 需要固定的摄像头来保证拍摄角度一致 需要固定的光源来保证受光面的一致 需要固定的检测物体来保证适应所设定的阈值(主要 灰度阈值) 需要知道一个物体实际的长度与像素之间的比值   方便做 ...

  7. opencv 通过标定摄像头测量物体大小_解决方案 | 如何用普通手机准确测量物体体积?...

    点击上方"计算机视觉life",选择"星标" 快速获得第一手干货 本文授权自机器之心. 最近,菜鸟全球科技挑战赛总决赛落幕.赛题「智能体积测量」关注物流要素「长 ...

  8. opencv判断 线夹角_python opencv实现直线检测并测出倾斜角度(附源码+注释)

    由于学习需要,我想要检测出图片中的直线,并且得到这些直线的角度.于是我在网上搜了好多直线检测的代码,但是没有搜到附有计算直线倾斜角度的代码,所以我花了一点时间,自己写了一份直线检测并测出倾斜角度的代码 ...

  9. opencv双目视觉标定、匹配和测量 (附代码)

    from:https://blog.csdn.net/bcj296050240/article/details/52778741 双目视觉原理方面参照<学习Opencv>和大牛博客 htt ...

最新文章

  1. 深度学习Github排名,很不错的介绍
  2. 打分系统php_亚马逊的推荐系统是怎么实现的?
  3. SpringMVC上传文件以流方式判断类型附常用类型
  4. 软件工程课堂作业——寻找“水王”
  5. loadrunner脚本中参数有中文时报错
  6. JAVA客户端数据传输_java模拟TCP通信实现客户端上传文件到服务器端
  7. 编译原理—小型(简化)高级语言分析器前端(Java)
  8. reentrantlock非公平锁不会随机挂起线程?_程序员必须要知道的ReentrantLock 及 AQS 实现原理...
  9. JMockit 1.37 示例
  10. 苹果CMS V8 电脑手机自适应电影模板
  11. Codeforces初体验
  12. nyoj 86 找球号(一)
  13. sql中update多表处理
  14. 2019年1月《语音信号处理》期末考试
  15. SAP QM 特性导出及定性定量
  16. 苹果芯片订单立功 台积电股价创新高
  17. TCP三次握手常见问题
  18. 学业水平考试b能上985吗_学业水平测试要求
  19. 【问题篇】免费下载使用RDM
  20. TQ2440开发板学习纪实(5)--- 设置UART串口,输出Hello World!

热门文章

  1. Google Map API使用详解(一)——Google Map开发背景知识
  2. 【专升本】计算机工科专升本考试,英语0基础考试经验分享
  3. requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容
  4. bim学习—— 第7章 放置首层门窗
  5. html左右飘窗高度不一致,飘窗高度偏高应该怎么处理?老师听听傅的经验之谈...
  6. 本周测试服务器角色转移系统仅开放转入,梦幻西游1月26日维护公告:春节活动测试服放出...
  7. 达梦数据库迁移教程(Mysql迁移到达梦数据库)
  8. 财报里的百度智能云,讲出了产业智能化的故事
  9. 生活在社会边缘的人也要顽强活下去
  10. 面向对象——抽象类与抽象方法