热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

OpenCV找出最小外接矩形

惯例先放结果吧测试图片盗取自:地址(2333)其实就一行关键的代码:RotatedRectrectminAreaRect(contours[i])

惯例先放结果吧

imshow("原图", 原图);
Mat 灰度图,二值图;
cvtColor(原图, 二值图, CV_BGR2GRAY);
//blur(灰度图, 二值图, Size(5, 5));//模糊一下,可以不要
threshold(二值图, 二值图, 0, 255, CV_THRESH_OTSU);//自适应二值化
二值图 = 255 - 二值图;//颜色反转
//imshow("二值图", 二值图);

//寻找最外层轮廓
vector> contours;
vector hierarchy;
findContours(二值图, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_NONE, Point());

Mat 画布 = Mat::zeros(二值图.size(), CV_8UC1); //最小外接矩形画布
for (int i = 0; i {
//绘制轮廓
drawContours(画布, contours, i, Scalar(255), 1, 8, hierarchy);

//绘制轮廓的最小外结矩形
RotatedRect rect = minAreaRect(contours[i]);
//rectangle(画布,rect.boundingRect(),Scalar(55));
Point2f P[4];

rect.points(P);
for (int j = 0; j <= 3; j++)
{
line(原图, P[j], P[(j + 1) % 4], Scalar(0,0,255), 1);
line(画布, P[j], P[(j + 1) % 4], Scalar(111), 2);
}

/*
//绘制轮廓的最小外结圆
Point2f center; float radius;
minEnclosingCircle(contours[i], center, radius);
circle(画布1, center, radius, Scalar(255), 2);
*/

}
//imshow("最小外接矩形", 画布);
imshow("标注出矩形", 原图);
waitKey(0);
return 0;
}




推荐阅读
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 为了使您的电脑更加个性化,许多用户希望为Windows 10桌面设置自己喜欢的多张图片。本文将详细介绍如何轻松实现这一目标,并提供一些专业建议,确保您能够充分利用系统功能。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 使用Python实现余弦相似度计算
    余弦相似度广泛应用于文本分类、图像识别等领域,用于衡量两个向量之间的相似程度。其值域在-1到1之间,数值越接近1表示两向量越相似,完全相同为1;相反方向时为-1;正交或不相关时为0。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • 网络出版服务许可证申请指南
    本文详细介绍了网络出版服务许可证的办理条件、适用企业范围及具体流程,帮助相关企业和个人了解并顺利完成许可证的申请。文章由专业机构提供,旨在为读者解答在互联网出版领域遇到的技术和合规问题。 ... [详细]
  • 智能手机的快速耗电问题困扰着许多人。通过一些简单的设置和调整,你可以显著提升手机的电池续航能力,甚至实现两天一充的目标。 ... [详细]
  • 如何在拍大师中创建复古黑白电视效果
    本文将详细介绍如何使用拍大师软件为视频添加经典的黑白电视效果。通过简单的步骤,您可以轻松实现这一独特的视觉风格,提升视频的艺术感。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
author-avatar
安安1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有