您可以通过使用绘制lines和arcs的函数来实现您想要的。在

要绘制的框架由4个相似的部分组成(每个角一个),每个部分旋转(或镜像)。在

让我们看看左上角:

如您所见,我们需要绘制2条线段(长度为d)和一条弧(半径为r的圆的四分之一)。在

假设左上角的坐标是(x1, y1)。在

这意味着弧的中心位于(x1 + r, y1 + r)。在

其中一行将从(x1 + r, y1)到(x1 + r + d, y1)。在

另一行将从(x1, y1 + r)到(x1, y1 + r + d)。在

其他角落也会发生类似的情况。在

示例代码:import cv2

import numpy as np

# ============================================================================

def draw_border(img, pt1, pt2, color, thickness, r, d):

x1,y1 = pt1

x2,y2 = pt2

# Top left

cv2.line(img, (x1 + r, y1), (x1 + r + d, y1), color, thickness)

cv2.line(img, (x1, y1 + r), (x1, y1 + r + d), color, thickness)

cv2.ellipse(img, (x1 + r, y1 + r), (r, r), 180, 0, 90, color, thickness)

# Top right

cv2.line(img, (x2 - r, y1), (x2 - r - d, y1), color, thickness)

cv2.line(img, (x2, y1 + r), (x2, y1 + r + d), color, thickness)

cv2.ellipse(img, (x2 - r, y1 + r), (r, r), 270, 0, 90, color, thickness)

# Bottom left

cv2.line(img, (x1 + r, y2), (x1 + r + d, y2), color, thickness)

cv2.line(img, (x1, y2 - r), (x1, y2 - r - d), color, thickness)

cv2.ellipse(img, (x1 + r, y2 - r), (r, r), 90, 0, 90, color, thickness)

# Bottom right

cv2.line(img, (x2 - r, y2), (x2 - r - d, y2), color, thickness)

cv2.line(img, (x2, y2 - r), (x2, y2 - r - d), color, thickness)

cv2.ellipse(img, (x2 - r, y2 - r), (r, r), 0, 0, 90, color, thickness)

# ============================================================================

img = np.zeros((256,256,3), dtype=np.uint8)

draw_border(img, (10,10), (100, 100), (127,255,255), 1, 10, 20)

draw_border(img, (128,128), (240, 160), (255,255,127), 1, 5, 5)

cv2.imwrite('round_rect.png', img)

结果:

python怎么画长方形_画一个漂亮的长方形相关推荐

  1. python简单图画程序_制作一个简单的画图小程序界面

    1 新建一个文本文档,然后点击重命名,建立一个python文件.后缀为.py.如图所示,系统会提示是否更改后缀,点击是.然后就创建了一个python文件. 2 打开刚才创建的文件,使用idle打开方式 ...

  2. python绘制太阳系模型_画一个太阳系的模型

    1 .画一个太阳系的模型? 2 .地球公转对地球有什么影响? 3 .摆在摆钟里是怎样工作的?摆在摆钟里起到了什么作用?人们为什么会选择摆作为摆钟 的控制核心?摆的快慢与那些因素有关? 4 . Xx 家 ...

  3. python的turtle画小人_当一个学了20分钟python turtle 的人画滑稽会怎样

    python 3.7 链接:https://pan.baidu.com/s/1Lob447oqCgD6nb39sB9cig 提取码:vn0a pycharm 链接:https://pan.baidu. ...

  4. python画气泡图_画气泡图的十二个图表库

    R – ggplot2Native R 可以来画图,但 ggplot2 才是乐趣的开始.我花了很多时间才弄懂它 – 特别是有许多方式来写ggplots2 命令.最终,我确定把一种灵活和操作简单的方法呈 ...

  5. python生成网络拓扑图_画网络拓扑图 - neteworkx-python- - ItBoth

    [NETWORK ASSOCIATES GUIDE TO COMMUNICATIONS PROTOCOLS 网络协议关系拓扑图 很全面 很好 值得收藏!] 在python下安装networkx绘制复杂 ...

  6. 用python画佩奇_画佩奇 - python代码库 - 云代码

    [python]代码库from turtle import* def nose(x,y):#鼻子 pu() goto(x,y) pd() seth(-30) begin_fill() a=0.4 fo ...

  7. python用渐变色画圆_画圆圈和设置渐变色

    _height = self.frame.size.height; _width = self.frame.size.width; //圆心 self.circleCenter = CGPointMa ...

  8. python和报表生成工具_推荐一个利用 python 生成 pptx 分析报告的工具包:reportgen...

    reportgen v0.1.8 更新介绍 这段时间,我对 reportgen 进行了大工程量的修改和更新.将之前在各个文章中出现的函数进行了封装,同时也对现有工具包的一些逻辑进行了调整. 1.rep ...

  9. python pygame小游戏_第一个python+pygame小游戏

    没有周队那么有情调,自己写故事做rpg,又没什么绘画功底,只能做这样的休闲棋类游戏.本来是用java写的,但里面绘图太麻烦了(或者说我不会多线程),又想起前几天看到的pygame,于是果断python ...

最新文章

  1. Vue 过渡组件,可实现组件或者页面的动画过渡或者css过渡
  2. AdvFlow:一种基于标准化流的黑盒攻击新方法,产生更难被发觉的对抗样本 | NeurIPS‘20
  3. 大剑无锋之UNION 和 UNION ALL (SQL)【面试推荐】
  4. Istio 中的授权策略详解
  5. 一个带关闭按钮的Div窗口,很漂亮
  6. vueAdmin-template-master十次方后台项目前端(已经完成初始化)下载地址
  7. 9550电机_电机 9550怎么来的
  8. 计算机基础知识2003,计算机基础知识PPT2003练习题及答案(DOC)
  9. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  10. 11 月全国程序员平均工资出炉
  11. 八皇后问题(回溯算法)
  12. 用Fiddler做抓包分析详解
  13. C++快速入门学习笔记(二)
  14. 谷歌浏览器历史记录查看很慢解决方案
  15. ubuntu18.04程序开机自启动
  16. 美团面试——餐饮系统开发
  17. 图片访问错误显示碎图
  18. 吊打面试官!MySQL和Oracle灵魂100问,你能答出多少?
  19. 使用御剑工具,扫描网站http://43.138.211.45的后台地址
  20. android 背影模糊,Android透明背景的高斯模糊一点记录

热门文章

  1. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析
  2. background图片叠加_css在图片上叠加层(其他图标)
  3. Java Rasp技术浅析
  4. 【单调栈】P4147 玉蟾宫
  5. 更改会话语言oracle,alter session 修改的参数值在会话中如何回退
  6. 用c语言编程宿舍管理系统,学生宿舍管理系统 C语言编程.doc
  7. FreeRTOS动态创建任务
  8. samba 配置文件详解
  9. 崔希凡JavaWeb笔记day19-day21(2016年10月4日17:35:51)
  10. angularjs2大漠穷秋视频笔记整理