关于对Rectangle的边界处理

MFC图形函数学习04——画矩形函数 MFC中绘制矩形函数是MFC的基本绘图函数,它的大小和位置由左上角和右下角的坐标决定;若想绘制的矩形边框线型、线宽、颜色以及填充颜色都还需要其它函数的配合。 阅读详情

今天很奇怪地发现一个问题,现象是:
1. 当采用一个与Rectangle无关的box作为ROI缩放时,需要用
Org.left = ROI.left + ROUND(Zoom.left*fInvW);
Org.top = ROI.top + ROUND(Zoom.top*fInvH);
lOrgW = ROUND(lZoomW*fInvW);
lOrgH = ROUND(lZoomH*fInvH);
Org.right = Org.left + lOrgW;
Org.bottom = Org.top + lOrgH;

而如果采用一个与Rectangle相关的box作为ROI缩放,则需要用
Org.left = ROI.left + ROUND(Zoom.left*fInvW);
Org.top = ROI.top + ROUND(Zoom.top*fInvH);
Org.right = ROI.left + ROUND(Zoom.right*fInvW);
Org.bottom = ROI.top + ROUND(Zoom.bottom*fInvH);

通过深入debug发现,这种现象产生的原因并不是因为是否相关,而是因为在获取ROI时,需要等比例地缩放。

不然,来回计算得到的值会产生漂移。

并且,当采用等比例缩放时,采用第二种写法也要优于第一种写法。

 

OpenCV矩形操作全解析:从cv2.rectangle绘制到Rect边界处理 在计算机视觉与图像处理中,矩形区域的定义与操作是基础且核心的技术概念。其原理基于离散像素坐标系,通过左上角坐标、宽度和高度四个参数,在二维图像空间中精确界定一个区域。这一基础数据结构的技术价值在于,它不仅是可视化标注的载体,更是ROI(Region of Interest)操作、目标定位和图像裁剪等高级功能的基石。在实际应用场景中,无论是目标检测的可视化、图像标注工具的交互,还是基于区域的像素分析,都离不开对矩形坐标空间、边界计算规则以及越界处理的深刻理解。本文聚焦于OpenCV中的`cv2.rectang 阅读详情

相关推荐

C# Rectangle实战:从碰撞检测到精准图片裁剪

在图形编程和游戏开发中,矩形(Rectangle)是处理2D空间关系的基础数据结构,其核心原理在于通过坐标和尺寸定义区域,并利用高效的数学运算进行空间关系判断。这一特性使其在碰撞检测和图像处理领域具有重要技术价值,能够显著提升应用的交互精准度和性能。具体到应用场景,在游戏开发中,矩形常用于实现高效的轴对齐包围盒(AABB)碰撞检测;在图像处理中,则用于定义兴趣区域(ROI)并完成精准的坐标映射与裁剪。本文正是基于碰撞检测和图片裁剪这两个高频需求,深入剖析C#中System.Drawing.Rectangle

djph26741的博客 464

OpenCV boundingRect 与 minAreaRect 用法

矩形边框(Bounding Rectangle)是说,用一个最小的矩形,把找到的形状包起来。还有一个带旋转的矩形,面积会更小,效果见下图 首先介绍下cv2.boundingRect(img)这个函数 这个函数很简单,img是一个二值图,也就是它的参数; 返回四个值,分别是x,y,w,h; x,y是矩阵左上点的坐标,w,h是矩阵的宽和高 然后利用cv2.rectan

_yuki_ 4万+

OpenCV矩形操作全解析:从cv2.rectangle绘制到Rect数据处理的实战指南

在计算机视觉和图像处理中,矩形操作是目标检测、图像标注等高级任务的基础。其核心原理在于对图像空间区域的两种不同操作范式:一种是用于可视化的绘制动作,另一种是用于数据描述和计算的结构化表示。从技术价值看,掌握这两种范式的区别与协同,能显著提升代码的健壮性和执行效率,避免常见的坐标偏移和性能瓶颈。在应用场景上,无论是动态目标标注、ROI提取,还是交并比计算、非极大值抑制,都离不开对矩形的精确操作。本文聚焦OpenCV中的cv2.rectangle函数与Rect数据结构,深入剖析其绘制哲学、坐标系统差异、相互转换

weixin_27251469的博客 228

C++/MFC工程[5]——绘制矩形与椭圆

本文包含绘制矩形的两种方法、椭圆的绘制以及在绘制中,透明画刷的使用。

舟舟的博客 6224

C#实现 填充矩形 随机画矩形 鼠标绘图 色彩变换矩阵 全局变形图形 漂亮的C#登录窗口(动画效果) 路径 另存为 绘制颜色渐变图形 绘制线条 绘制椭圆 绘制扇形 绘制抛物线 绘制矩形 绘制弧线 绘制多边形和折线 绘制RectangleF结构指定的矩形 画直线 画笔 创建笔 呈现图像 “字体”对话框安徽机电职业技术学院陈伟

填充矩形 随机画矩形 鼠标绘图 色彩变换矩阵 全局变形图形 漂亮的C#登录窗口(动画效果) 路径 另存为 绘制颜色渐变图形 绘制线条 绘制椭圆 绘制扇形 绘制抛物线 绘制矩形 绘制弧线 绘制多边形和折线 绘制RectangleF结构指定的矩形 画直线 画笔 创建笔 呈现图像 “字体”对话框

从选型到阵列:基于ESP32-S3的智能硬件麦克风系统设计实战

本文详细介绍了基于ESP32-S3芯片设计智能硬件麦克风阵列的完整实战方案。从核心芯片选型、数字MEMS麦克风的参数解读与电路设计,到关键的声学结构密封、阵列布局策略,再到利用ESP-ADF框架构建音频处理流水线并集成回声消除、噪声抑制等算法,提供了从硬件到软件的全链路设计指南与避坑要点,旨在实现清晰、稳定的远场语音交互。

weixin_29173777的博客 266

应用绘图

说句吧,刚学C++,也看过不少帖子。MFC庞大而又功能齐全的窗口界面开发将C++应用的淋漓尽致,刚入门是要多下功夫,下面就一点一滴记录这些撸代码的寂寞岁月吧。本教程摘自:Tigers Works张卫华等编著的《Visual C++程序设计实战演练》. ————————————————————致敬上述编著作者.一.简单直方图程序. void CmysdiView::OnDraw(CDC* pDC)

Vanau的博客 743

整车无线布置的综述

车载无线功能日益丰富,涵盖5G、GNSS、V2X等多种技术,布置需兼顾性能与美观。车顶是理想位置,鲨鱼鳍、后视镜等集成方案可优化空间。需考虑射频电缆损耗、GNSS天线视角、V2X全向覆盖等关键因素。整车测试需适应高频段需求,通过链路预算和互补天线设计优化信号。不同车型需定制方案,并注意抗干扰和多频段兼容性。(149字)

Godspeed_zwh的博客 1858

OpenCV之rectangle函数与Windows的GDI函数Rectangle的说明

rectangle函数就是绘制一个矩形框,它有两种形式,一种是输入左上角和右下角的点的x和y坐标,即Point,另一种是输入一个Rect。分别如下: CV_EXPORTS_W void rectangle(CV_IN_OUT Mat& img, Point pt1, Point pt2, const Scalar& color,...

格物致知的专栏 [音视频编解码 网络协议 计算机视觉 计算机图形学 图像理解 语音识别 机器学习 模拟电路 传感器] 1139

量化交易中的烂板策略:短线高频交易实战解析

量化交易通过算法模型实现自动化投资决策,其中短线高频交易是典型应用场景。从市场微观结构看,涨停板现象反映了资金博弈的动态平衡,而烂板策略正是捕捉涨停板短暂打开时的交易机会。该策略结合L2行情数据和Python量化框架,通过参数化规则识别特定形态的烂板股票,在风险可控前提下追求超额收益。实战中需严格遵循动态仓位管理和止损纪律,适用于A股市场短线交易。高频交易与量化分析技术的结合,为投资者提供了新的alpha挖掘工具。

weixin_30432579的博客 364

三相逆变器拓扑结构的分析及应用场景

三相逆变器是电力电子领域中广泛应用的一种设备,用于将直流电转换为交流电。不同的拓扑结构在性能、成本、复杂度和应用领域上存在差异。小编将在本文中将进一步拓展对三相逆变器拓扑结构的分析,并探讨其适用的应用场景。

道合顺的博客 2236

HDU 1506 Largest Rectangle in a Histogram (dp左右处理边界的矩形问题)

E - Largest Rectangle in a Histogram Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1506 Appoint description: Description A ...

weixin_30537391的博客 92

基于pytest+Allure+Python+CANoe的汽车诊断自动化测试框架搭建实战

自动化测试是提升软件质量和研发效率的关键技术,其核心原理是通过脚本模拟人工操作,实现测试用例的自动执行与结果验证。在汽车电子领域,诊断服务测试是确保车辆ECU(电子控制单元)功能正常的重要环节,传统手动测试在面对海量用例和频繁回归时效率低下。本文聚焦于如何利用Python的pytest测试框架、Allure报告工具以及Excel数据驱动,构建一个与Vector CANoe仿真测试环境深度集成的自动化测试解决方案。该方案通过Python调用CANoe的COM接口,实现了诊断报文的自动发送与响应验证,并结合Al

weixin_30384217的博客 678

java定义一个getsize方法_java.awt.Rectangle - Rectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度...

public class RectangleRectangle 指定坐标空间中的一个区域,通过坐标空间中 Rectangle 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。Rectangle 对象的 width 和 height 是 public 字段。创建 Rectangle 的构造方法,以及可以修改该对象的方法,都允许将 width 和 height 设置为负值。对于 width 或...

weixin_39830225的博客 1229

CANoe进阶实战(第十一章)-LIN节点测试调度

《CANoe快速入门实战:LIN节点调度开发》摘要 本文是CANoe系列教程的第十一章,重点讲解如何通过CAPL编程实现LIN报文的灵活调度控制。文章采用"输入-输出-过程"三步骤法,详细介绍了调度表函数linChangeSchedTable()、启动/停止函数linStartScheduler()/linStopDisturbance()等关键API的使用方法。作者创新性地通过系统变量在Test节点间接控制Network节点的调度功能,并提供了完整的节点代码实现方案。最后的Trace窗

weixin_53605885的博客 1022

黑猫带你学eMMC协议第2篇:eMMC部分相关名词释义

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 本文背景 本文关键词不包括emmc jedec5.1协议第3章节:《Terms and definitions》内容。关于emmc协议层的关键词,直接查阅spec相关章节即可,清晰明了,此处没必要再列出。 本文为本人工作学习中常听到或常用到关乎于emmc/flash的一些关键词合集,没有固定分类,不需要强行记忆,供查询使用。 1.

黑猫奥利奥的博客 7434

java rectangle_rectangle函数参数 java中Rectangle 的用法

rectangle()函数void rectangle(int left,int top,int right,int bottom) 说明: 参数le此函数调用方式为void rectangle(int left,int top,int right,int bottom)。rect结构定义了一个矩形框左上角以及右下角的坐标,RECT结构通常用于Windows编程。 typedef struct _...

weixin_39765100的博客 4450

OSG 核心详解

OpenSceneGraph (OSG) 的核心架构、场景图管理以及几何体的绘制

qq_45859163的博客 729

cv2在图片上画不同矩形框,不同框之间产生其他颜色的可能原因

cv2.rectangle(new_gt_mask, p1, p2, color=255, thickness=-1, lineType=cv2.LINE_AA) 原因是使用了lineType=cv2.LINE_AA,抗锯齿,这样边缘的时候会做平滑处理,就会和其他的颜色做平均等处理。 会生成边界颜色是混合色的效果。(仔细看) 下图才是我们想要的 ...

york1996的博客 1036

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Halcon的reduce_domain和crop_rectangle1

与 `reduce_domain` 不同的是,`crop_rectangle1` 是基于具体的矩形边界进行裁剪。**功能**:`reduce_domain` 函数用于根据指定的区域(ROI)从原始图像中提取出一个子图像。在 Halcon 中,`reduce_domain` 和 `crop_rectangle1` 是用于处理图像和区域的重要函数。`ReducedImage`:输出的图像,仅包含 `Region` 区域内的像素。- `Row1`、`Column1`:裁剪区域的左上角坐标。

wedo123的博客 853

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java rectangle_Java Core.rectangle方法代码示例

import org.opencv.core.Core; //导入方法依赖的package包/类public void findRectangle() {Imgproc.cvtColor(originalImage, image, Imgproc.COLOR_BGR2GRAY);setFilter();this.rects.clear();//Find ContoursImgproc.findCo...

weixin_39705193的博客 446

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

7-6 java 类的设计 (10 分)

7-6 java 类的设计 (10 分) 请设计一个矩形类 class Rectangle,类中定义两个int型变量,记录长和宽,定义3个赋值函数:setW(int w),setH(int h),setWH(int w,int h)用于长和宽的赋值,长和宽>0时返回true,否则返回false;定义一个函数求矩形的面积Area()并输出,若3个赋值函数赋值失败,则输出“error”; 主函数如下: import java.util.Scanner; public class Main { p

m0_56784737的博客 1006

别再手动切图了!用C#的Rectangle类5分钟搞定图片批量裁剪(附WinForms完整源码)

本文详细介绍了如何利用C#的Rectangle类快速实现图片批量裁剪,通过WinForms构建自动化工具,大幅提升图片处理效率。文章解析了Rectangle类的核心能力、工程化实现步骤,并提供了完整的WinForms源码,特别适合电商、游戏开发等需要高效图片切割的场景。

weixin_30460489的博客 186

pythonopencv提取圆内图像_python – 使用OpenCV从图像中提取多边形给定...

使用cv2.fillConvexPoly以便您可以指定2D点阵列并定义一个蒙版,该蒙版填充由这些点定义的形状在蒙版中为白色.如果多边形中定义的点是凸的(因此名称为fillConvexPoly),则应该进行一些公平的警告.然后我们可以将其转换为布尔蒙版,并使用它来索引图像以提取出您想要的像素.下面的代码生成一个名为mask的数组,它将包含要从图像中保存的像素的布尔掩码.此外,数组输出将包含由多边形定...

weixin_39845613的博客 952
上一篇: 关于对小数的快速取整
下一篇: 一些代码编译后的指令,捉虫很有用
carpinter
博客等级 码龄19年 26粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值