如何用OpenCV绘制圆角矩形(带圆角的矩形)?

2024-06-22

如何在 OpenCV 中绘制圆角矩形?我知道函数 ellipse() 和 line() 可以简单地放在一起来绘制它。我只是想知道是否有人以前做过并将其放入适当的函数中以便我可以使用它?理想情况下,拐角半径是在参数中校准的。

我搜索了很多,但似乎以前没有人遇到过这个问题。如果没有人有这样的功能,我可能会在几天后在这里发布我自己的解决方案。


我意识到,这比我想象的要容易得多。这是我的功能。我希望它对某人有帮助。

/**
 * Draws a rectangle with rounded corners, the parameters are the same as in the OpenCV function @see rectangle();
 * @param cornerRadius A positive int value defining the radius of the round corners.
 * @author K
 */
void rounded_rectangle( Mat& src, Point topLeft, Point bottomRight, const Scalar lineColor, const int thickness, const int lineType , const int cornerRadius)
{
    /* corners:
     * p1 - p2
     * |     |
     * p4 - p3
     */
    Point p1 = topLeft;
    Point p2 = Point (bottomRight.x, topLeft.y);
    Point p3 = bottomRight;
    Point p4 = Point (topLeft.x, bottomRight.y);
    
    // draw straight lines
    line(src, Point (p1.x + cornerRadius, p1.y), Point (p2.x - cornerRadius, p2.y), lineColor, thickness, lineType);
    line(src, Point (p2.x, p2.y + cornerRadius), Point (p3.x, p3.y - cornerRadius), lineColor, thickness, lineType);
    line(src, Point (p4.x + cornerRadius, p4.y), Point (p3.x-cornerRadius, p3.y), lineColor, thickness, lineType);
    line(src, Point (p1.x, p1.y + cornerRadius), Point (p4.x, p4.y - cornerRadius), lineColor, thickness, lineType);
    
    // draw arcs
    ellipse( src, p1 + Point(cornerRadius, cornerRadius), Size( cornerRadius, cornerRadius ), 180.0, 0, 90, lineColor, thickness, lineType );
    ellipse( src, p2 + Point(-cornerRadius, cornerRadius), Size( cornerRadius, cornerRadius ), 270.0, 0, 90, lineColor, thickness, lineType );
    ellipse( src, p3 + Point(-cornerRadius, -cornerRadius), Size( cornerRadius, cornerRadius ), 0.0, 0, 90, lineColor, thickness, lineType );
    ellipse( src, p4 + Point(cornerRadius, -cornerRadius), Size( cornerRadius, cornerRadius ), 90.0, 0, 90, lineColor, thickness, lineType );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用OpenCV绘制圆角矩形(带圆角的矩形)? 的相关文章

  • 如何重写实体数据模型创建的对象上的 Equals?

    我创建了一个实体数据模型 它从 SQLite 数据库中提取记录 其中一个表是 People 我想重写 person Equals 方法 但我不确定去哪里进行这样的更改 因为 Person 对象是自动生成的 我什至看不到该 autogen 代
  • 我们可以在 C# 中定义枚举的隐式转换吗?

    是否可以在 C 中定义枚举的隐式转换 可以实现这一目标的东西吗 public enum MyEnum one 1 two 2 MyEnum number MyEnum one long i number 如果没有 为什么不呢 有一个解决方案
  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 在 C/C++ 中绘制填充椭圆的简单算法

    在SO上 找到了以下绘制实心圆的简单算法 for int y radius y lt radius y for int x radius x lt radius x if x x y y lt radius radius setpixel
  • MVVM 同步集合

    是否有一种标准化方法可以将 Model 对象集合与 C 和 WPF 中匹配的 ModelView 对象集合同步 我正在寻找某种类 可以使以下两个集合保持同步 假设我只有几个苹果 并且可以将它们全部保存在内存中 换句话说 我想确保如果我将 A
  • 使用私有构造函数的 C# 单元测试类?

    好吧 我刚刚收到一个作业 我必须对具有私有构造函数的类执行单元测试 现在 当所有方法也都是非静态时 我该如何在不初始化类的情况下进行单元测试 有什么方法可以对具有私有构造函数的类进行单元测试 无需反射 如果您无法将类公开 您仍然可以通过以下
  • 用于 C/C++ 的独立跨平台 (Windows/Linux) 文件压缩?

    我正在寻找一个 最好是小的 C 或 C 开源库 我可以将其包含在我的 MIT 许可项目中 托管在 google 代码上 我是一名业余爱好 C C 程序员 所以我并不那么先进 但我只知道为名为 SA MP 的应用程序 适用于 Windows
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • 如何在Windows Azure上调用ffmpeg.exe转换音频文件?

    我在 Windows Azure 上运行 Web 角色来接收 AAC 音频文件 通过 base64 字符串上传 并将它们存储到 blob 中 现在效果很好 接下来 我还必须将它们转换为 MP3 并将 MP3 存储到 blob 中 我决定使用
  • 实体框架中的导航属性是什么

    我是实体框架的新手 当Visual Studio创建模型图时我们主要可以看到Entities Propertie和Navigation Properties这两个东西 那么这些Navigation Properties是什么 如何使用它们
  • 链接错误:xxx 已在 *****.LIB 中定义:: 究竟出了什么问题?

    Problem 我正在尝试使用一个名为DCMTK http dicom offis de dcmtk它使用了一些其他外部库 zlib libtiff libpng libxml2 libiconv 我已经从同一网站下载了这些外部库 LIB
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • 没有类型的 IEnumerable 属性

    我正在尝试创建一个类似于来自 MSDN 的官方 DataGrid ItemsSource 的属性 public IEnumerable ItemsSource get set 这提供了对任何派生类中任何类型的支持 有了这个 我可以设置类似的
  • Subsonic 3 ActiveRecord 嵌套选择导致 NotIn 错误?

    我有以下 Subsonic 3 0 查询 其中包含嵌套的 NotIn 查询 public List
  • 如何进行平衡组捕获?

    假设我有这个文本输入 tes tR R abc aD mnoR xyz 我想提取 ff 输出 R abc R xyz D mnoR xyz R R abc aD mnoR xyz 目前 我只能使用平衡组方法提取组内的内容 如中所示msdn
  • 在 C# 中为 ListBox 分配数据源时,如何从 ListBox 中删除所选项目?

    在 C 中为 ListBox 分配数据源时 如何从 ListBox 中删除所选项目 尝试删除时出现错误 设置 DataSource 属性后 无法修改项目集合 但是当我尝试从数据源 数据表 中删除项目时 它会抛出错误 因为 数据行不在当前行集
  • 使用反射检测属性的访问修饰符类型

    我编写了一些代码来使用反射查看属性 我已经使用反射从类中检索了属性列表 但是我需要查明该财产是公共的还是受保护的 例如 public string Name get set protected int Age get set Propert

随机推荐

  • Psexec“以(远程)管理员身份运行”

    我编写了一些使用 PSexe 的 C 代码 我希望它在连接到我的 LAN 的计算机上运行远程 exe 该exe创建一个新的本地用户 当我在远程计算机上本地运行该 exe 时 右键单击 gt 以管理员身份运行 后 它工作正常 我不知道如何模拟
  • Gitlab 机架攻击安装

    我正在安装 gitlab 并遵循 Gitlab 安装指南的所有说明 一切正常 但在 初始化数据库并激活高级功能 步骤中 它失败了 https github com gitlabhq gitlabhq blob master doc inst
  • bash:使用 scp 检查远程文件是否存在

    我正在编写一个 bash 脚本来将文件从远程服务器复制到本地计算机 我需要检查该文件是否可用 以便在该文件不存在时可以采取替代操作 我知道如何测试本地文件是否存在 但是 使用 scp 会使事情变得有点复杂 常识告诉我 一种方法是无论如何尝试
  • 从 NSMutableArray 中获取最后五个值

    我有一个NSMutableArray其计数为 10 我想提取最后 5 个值并将它们存储在另一个数组中 我怎样才能做到这一点 我觉得 NSArray subarrayWithRange NSRange range doc https deve
  • 标准 MBean 的描述

    我想在 JBoss jmx console 中使我的标准 MBean 更加详细 DynamicMBean 有 getMBeanInfo 来完成此操作 方法返回带有 MBean 描述的 MBeanInfo 但是我怎样才能对标准 MBean 做
  • Docker:构建镜像时出现“lstat no such file or directory”错误。文件在那里

    我想将一个简单的 JS Boilerplate 部署到 Docker Cloud 我使用已经用于不同样板和图像的 Dockerfile Dockerfile 非常简单 它只是基于官方的 nginx 添加了两个配置文件 然后将我的 gulp
  • 时间:2019-03-17 标签:c#datagridsqlpopulation

    我正在使用一个小型应用程序 用户可以在其中从 SQL 检索特定数据并用数据填充数据网格 用户可以从 SQL 数据库检索数据 在文本框中写入条形码 然后就会出现他搜索的数据 到目前为止我使用了这段代码 try if e Key Key Ent
  • PHP 内部操作码缓存

    由于我是 PHP 新手 我对内部有一些疑问 但我无法在互联网上准确找到 我读过一份声明 每次在机器上运行 PHP 都会重新编译您的程序 可读语言 称为操作码 操作码缓存存储 在内存中编译 并在第二次调用时重新执行它 时间 所以我脑子里出现了
  • 在 Mac OSx 上安装 Android Studio 时缺少平台工具

    我正在尝试在 Mac OSx 上安装 Android Studio 目的是学习一些 Android 开发 提供的说明只是为了 1 Launch the dmg file you downloaded 2 Drag and drop Andr
  • Java - 解析字符串并每 100 个字符添加换行符 [重复]

    这个问题在这里已经有答案了 我想问如何解析字符串并添加换行符 n 每 100 个字符 我知道您可以使用正则表达式解析字符串 但不知道稍后如何继续 有人可以帮忙吗 你可以这样做 String str String parsedStr str
  • 如何使用 emberfire 在 ember.js 2.0.0 中查询 firebase 数据库中名为 equalTo xyz 的所有项目?

    我是 ember js 和 firebase 的新手 我一直在尝试制作一些需要我在数据库中查询与定义值匹配的键的东西 根据指南 emberjs com http guides emberjs com v2 1 0 models findin
  • equals() 仅依赖于 ID 是否正确?

    假设我有课User public class User private Long id private String name private Integer age private BigDecimal account other fie
  • 当鼠标悬停在 Plotly.js 上时,Plotly.js 显示的不是跟踪的全名

    我在角度应用程序中用plotly制作了一个图表 但跟踪的名称很长 因此 当我将鼠标悬停在图表上时 名称会通过在其后面添加 来缩短 我真的不想要这个 我怎样才能改变这个 这是我的代码 var text Plot ForecastConfig
  • Excel 宏 - 复制并粘贴筛选的行

    因此基于工作表中的下拉选择 B 我们想要滚动浏览工作表中的一堆行 A 删除所有没有的Cell 4 dropDownValue 然后复制该范围并将其粘贴到工作表中 B 下面的代码运行但不执行任何操作 我可以调试并看到dropDownValue
  • 为什么我的 Perl 线程在第一次运行时随机执行,但在后续运行时按顺序执行?

    在测试问题代码的过程中如何在 Perl 中的调用之间存储每个线程的状态 https stackoverflow com questions 2317114我注意到 第一次执行脚本时 线程执行彼此很好地交错 但在脚本的所有后续执行中 所有线程
  • 如何在结束响应之前输出数据?

    这是我在 Chrome 11 和 Firefox 4 中测试的代码片段 var http require http http createServer function request response Write Headers resp
  • 各向异性扩散二维图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在二维图像上使用各向异性扩散 我想使用 python 但不介意使用 matlab 或 c 他们有我
  • 招聘时测试 HTML/CSS/Javascript 技能 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在招聘前端开发人员时 您应该测试哪些具体技能和实践 评估 HTML CSS 和 Javascript 技能的良好指标是什么 显然 无表语义 HT
  • 如何从 firebase 存储发送附件并使用 node.js 中的 mailgun 服务将其发送到电子邮件

    是否可以从 firebase 存储附加文件 我尝试了以下代码 但它不起作用 var mailgun require mailgun js var api key key acf9f881e32c85b3c0dad34358507a95 va
  • 如何用OpenCV绘制圆角矩形(带圆角的矩形)?

    如何在 OpenCV 中绘制圆角矩形 我知道函数 ellipse 和 line 可以简单地放在一起来绘制它 我只是想知道是否有人以前做过并将其放入适当的函数中以便我可以使用它 理想情况下 拐角半径是在参数中校准的 我搜索了很多 但似乎以前没