当前位置: 首页 > news >正文

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

这里是一个Python实现(万一有人一直在寻找一个):它绘制一个圆角(随机半径和线厚度的改变---如果你想)边界周围的图像:

def addRoundedRectangleBorder(img):

height, width, channels = img.shape

border_radius = int(width * random.randint(1, 10)/100.0)

line_thickness = int(max(width, height) * random.randint(1, 3)/100.0)

edge_shift = int(line_thickness/2.0)

red = random.randint(230,255)

green = random.randint(230,255)

blue = random.randint(230,255)

color = (blue, green, red)

#draw lines

#top

cv2.line(img, (border_radius, edge_shift),

(width - border_radius, edge_shift), (blue, green, red), line_thickness)

#bottom

cv2.line(img, (border_radius, height-line_thickness),

(width - border_radius, height-line_thickness), (blue, green, red), line_thickness)

#left

cv2.line(img, (edge_shift, border_radius),

(edge_shift, height - border_radius), (blue, green, red), line_thickness)

#right

cv2.line(img, (width - line_thickness, border_radius),

(width - line_thickness, height - border_radius), (blue, green, red), line_thickness)

#corners

cv2.ellipse(img, (border_radius+ edge_shift, border_radius+edge_shift),

(border_radius, border_radius), 180, 0, 90, color, line_thickness)

cv2.ellipse(img, (width-(border_radius+line_thickness), border_radius),

(border_radius, border_radius), 270, 0, 90, color, line_thickness)

cv2.ellipse(img, (width-(border_radius+line_thickness), height-(border_radius + line_thickness)),

(border_radius, border_radius), 10, 0, 90, color, line_thickness)

cv2.ellipse(img, (border_radius+edge_shift, height-(border_radius + line_thickness)),

(border_radius, border_radius), 90, 0, 90, color, line_thickness)

return img

相关文章:

  • vfp控制excel选择全表_Excel快速填充功能,让你输入数据不只是快一点点
  • 遍历list 分组求和_LeetCode刷题实战49:字母异位词分组
  • spark labeledpoint函数用法_Hive常用的函数总结
  • python字符串子串替换方法_python替换字符串中的子串图文步骤
  • 多选框位置调整_水下目标检测竞赛冠军方案:多图像融合增强 | URPC 2019
  • unexpected eof while parsing什么意思_少侠留步!你知道if、while和递归之间的关系吗?...
  • python batch normalization_使用Python实现Batch normalization和卷积层
  • python 模糊匹配库_Python中实现模糊匹配的魔法库:FuzzyWuzzy
  • apache ii评分怎么评_雅思分数怎么算?评分标准了解下
  • 百度搜索接口api_搜索推广丨oCPC投放API接入方式详解
  • python做界面_windows下用python调用HFSS
  • 单元测试用例_3.编写django单元测试用例
  • 各类社交app图标_开发一款社交APP前期如何做推广?
  • 序列化python_Python的序列化问题
  • qt源码 干部档案管理系统_企业干部人事档案管理如何迈向信息化
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • October CMS - 快速入门 9 Images And Galleries
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue.js框架原理浅析
  • vue-router 实现分析
  • 分布式事物理论与实践
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 爬虫模拟登陆 SegmentFault
  • 深入浏览器事件循环的本质
  • 实战|智能家居行业移动应用性能分析
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 树莓派 - 使用须知
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一个完整Java Web项目背后的密码
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Mac 上flink的安装与启动
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #define与typedef区别
  • #pragma once
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (理论篇)httpmoudle和httphandler一览
  • (七)Knockout 创建自定义绑定
  • (十)T检验-第一部分
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .form文件_SSM框架文件上传篇
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 后台导出excel ,word
  • .NET 回调、接口回调、 委托
  • .net 获取url的方法
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • @Autowired @Resource @Qualifier的区别
  • @软考考生,这份软考高分攻略你须知道
  • [30期] 我的学习方法