25-轮廓最小外接矩形(minAreaRect())(EmguCV学习)

计算点集的最小外接矩形——OpenCV的minAreaRect函数 输入一系列二维点,返回其最小外接矩形。根据函数原型,输入的数据可以是类型,包含1个以上的点;返回值是centersizeangle。其中size和angle。 阅读详情
AI摘要

本文详细介绍使用Emgu CV库中的MinAreaRect()函数进行图像处理的方法,包括旋转矩形的计算、物体尺寸测量及二维码的旋转校正,展示了如何通过编程实现图像的精确分析与调整。

文章目录

说明

1、MinAreaRect()函数可以寻找最小外接矩形;返回一个旋转矩形,旋转矩形的旋转角度一定是负(angle < 0),表示逆时针旋转,顺时针为正;
在这里插入图片描述
在这里插入图片描述
2、最小外接矩形可以用来进行矩形的旋转校正(应用);

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
using System.Drawing;

namespace lesson25
{
   
   
    class Program
    {
   
   
        static void Main(string[] args)
        {
   
   
            //旋转矩形
            //Mat src = CvInvoke.Imread("mask2.jpg");
            //Mat dst = src.Clone();
            //Mat grayimg = new Mat();
            //CvInvoke.Imshow("input", src);
            //CvInvoke.CvtColor(src, grayimg, ColorConversion.Bgr2Gray);
            //CvInvoke.Threshold(grayimg, grayimg, 100, 255, ThresholdType.Binary);
            //VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
            //VectorOfRect hierarchy = new VectorOfRect();
            //CvInvoke.FindContours(grayimg, contours, hierarchy, RetrType.Tree, ChainApproxMethod.ChainApproxNone);
            //CvInvoke.DrawContours(dst, contours, -1, new MCvScalar(255, 255, 0), 2);
            //for (int i = 0; i < contours.Size; i++)
            //{
   
   
            //    RotatedRect rotatedRect = CvInvoke.MinAreaRect(contours[i]);  //计算最小外接矩形
            //    PointF[] pointFs = new PointF[4];                             //存储旋转矩形的4个顶点
            //    pointFs = rotatedRect.GetVertices();
            //    CvInvoke.PutText(dst, "rotated rectangle", new Point((int)pointFs[1].X, (int)pointFs[1].Y), FontFace.HersheyDuplex,
            //        1.2, new MCvScalar(0, 0, 255), 2);
            //    for (int j = 0; j < 4; j++)
            //    {
   
   
            //        CvInvoke.Line(dst, new Point((int)pointFs[j].X, (int)pointFs[j].Y), new Point((int)pointFs[(j + 1) % 4].X, (int)pointFs[(j + 1) % 4].Y),
            //            new MCvScalar(0, 0, 255), 2);
            //    }
            //}
            //CvInvoke.Imshow("result", dst);
            //CvInvoke.WaitKey(0);

            ///测量物体宽高
            //Mat src = CvInvoke.Imread("cup.jpg");
            //Mat dst = src.Clone();
            //Mat grayImg = new Mat();
            //CvInvoke.Imshow("input", src);
            //CvInvoke.CvtColor(src, grayImg, ColorConversion.Bgr2Gray);
            //CvInvoke.Threshold(grayImg, grayImg, 100, 255, ThresholdType.BinaryInv);
      
(十三) minAreaRect函数 函数的返回值是旋转矩形框中心点的坐标和框的宽高,想要在图像画出旋转矩形框还需要将其转成4个顶点的形式,使用。轴建立新的坐标系,则和原图像坐标系之间是只有旋转变换,求出其旋转矩阵即可完成点的变换,可。此外还可以手动的来求,也比较简单,假设以旋转点为原点,矩形框。轴正方向开始顺时针旋转碰到旋转矩形框第一条边时所转过的角度,旋转重合的第一条边算做。分别是旋转矩形框中心的坐标和矩形的宽和高。旧版本和新版本的定义有些许的差异,具体是以。的点为旋转点, 逆时针方向旋转碰到的第一条边与。对于旧版的定义,以旋转矩形框。.. 阅读详情

相关推荐

OpenCV minAreaRect函数

为了返回包含输入信息的最小斜矩形,我们采用一个名为Box2D的结构体rect,该结构体包含最小外接矩形的中心坐标(x,y)、尺寸(宽度,高度)以及旋转角度。然而,为了绘制这个矩形,我们需要获取矩形的四个顶点坐标,这可以通过调用函数来实现。该函数返回一个包含四个顶点坐标的列表,形式为。

T 1537

机器视觉学习(十一)—— 最小矩形和圆形区域、近似轮廓、凸包

最小矩形区域与最小圆形区域、显示近似轮廓、显示凸包

歆歆~黯了 3519

C#上位机实战:车牌识别与验证码识别全链路落地

OCR(光学字符识别)是计算机视觉中从图像提取字符序列的基础技术,其原理通常包括预处理、字符定位、序列建模与解码等步骤。在工程实践中,OCR技术价值显著,可应用于车牌识别、验证码识别等场景。例如,在C#上位机开发中,结合OpenCVSharp进行图像预处理与定位,利用ONNX Runtime部署CRNN模型实现端到端序列识别,能有效处理车牌和验证码的字符提取任务。本文围绕C#环境,详细讲解从环境搭建、模型选型到参数调优的完整落地链路,并分享现场避坑经验。

weixin_34216196的博客 500

MIPI CSI-2数据加扰技术解析:LFSR实现与多通道同步策略

本文深入解析了MIPI CSI-2协议中的数据加扰技术,该技术通过线性反馈移位寄存器(LFSR)对图像数据进行随机化处理,旨在有效降低高速传输中的电磁干扰。文章详细阐述了LFSR的工作原理、D-PHY与C-PHY物理层不同的初始化与同步策略,并探讨了多通道同步的实现方法,为高速接口的EMC设计与调试提供了实践指导。

weixin_29207149的博客 384

Wiley:International Journal for Numerical Methods in Biomedical Engineering投稿流程

中间过程省略,这个出版社很人性化,投稿的web UI也很好看。上传word之后,一步步跟着走就行,不用填太多东西。不要最后在最后检查阶段,重新上传word文件,这样会导致,之前针对word的操作全部改变。

Everyday try to become better -Kobe Bryant 2545

程序员未来真的会被淘汰吗?

实际上的计算机:web,图形学Q,Linux系统开发,一系列嵌入式开发,数据库,高性能服务器,中间件开发,三维建模,网络安全,通信协议°,加密算法,服务器集群维护,文件存储引擎Q,编译器,工业软件,客户端,计算机视觉,自然语言处理,算法调优,游戏引擎Q。实际上的计算机:web,图形学Q,Linux系统开发,一系列嵌入式开发,数据库,高性能服务器,中间件开发,三维建模,网络安全,通信协议°,加密算法,服务器集群维护,文件存储引擎Q,编译器,工业软件,客户端,计算机视觉,自然语言处理,算法调优,游戏引擎Q。

——心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,谦虚,自律,反思,成长,还算是比较正能量的博主,公益免费传播……内心特别想在AI界做出一些可以推进历史进程影响力的东西(兴趣使然,有点小情怀,也有点使命感呀)… 1259

“挑战杯”大赛“揭榜挂帅”赛道-baseline解析

在这个脚本中,txt文件的保存路径为'yolov7/datasets/Fatigue_driving_detection/txt_labels/',而xml文件的路径为'./label_xml/'。标注图片后的产物是会给每一个图片对应生成一个xml格式的文件,但是如果要用yolo框架去训练模型,输入的数据必须是txt格式,因此这里有一步转换格式的过程。注意看:obs这里有三个文件夹,第一个是关键帧的文件夹A,第二个是标注时输出的位置为文件夹B,第三个是智能标注后和手动标注的合集文件夹C。

m0_62899814的博客 2321

MATLAB安装

Matlab 2016a 安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p       密码:17gg   Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_win64.part2.rar两部分安装文件和Matlab 2016a Win64 Crack破解文件。 2、解压安装文件(解...

qq_36734094的博客 17万+

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1356

SAP ABAP CDS View 里的日期函数

摘要:本文系统介绍了ABAP CDS日期函数在企业级应用中的关键作用,包括账龄计算、合同续期等业务场景。重点解析了DATS_IS_VALID、DATS_DAYS_BETWEEN等核心函数的语义和使用边界,特别强调on_error四种异常处理策略的选择逻辑。针对系统日期获取,对比了经典CDS的参数注入和View Entity会话变量两种方式。文章还提供了完整可运行的示例代码(包含CDS视图和ABAP程序),帮助开发者快速验证不同版本下的函数行为差异,确保在实际项目中正确应用这些日期处理函数。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 378

Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)

Windows 11 - 打开操作安全中心提示 "需要使用新应用以打开此 Windowsdefender 链接" 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开),当您点击任务栏上要关闭安全中心防护设置时,这种情况打不开怎么解决,怎么办,Windows安全中心,病毒和威胁保护,账户保护,防火墙和网络保护,设备安全性。

🏆 前端领域优质创作者 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 24-正外接矩形BoundingRectangle(EmguCV学习)
下一篇: 26-最小外接圆、椭圆、轮廓长度、轮廓面积(EmguCv学习)
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值