python如何利用中心坐标绘制矩形

 更新时间:2023年08月16日 09:26:38   作者:绍琳的男朋友  
这篇文章主要介绍了python如何利用中心坐标绘制矩形问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python利用中心坐标绘制矩形

python利用matplotlib库根据中心坐标与方位角绘制矩形

import matplotlib.pyplot as plt
import math
def convert_center_to_leftdown(x_cord, y_cord, angle, width, height):
    xp = x_cord-(math.sqrt(width**2+height**2)/2)*math.cos(math.atan2(height, width)+angle/180*math.pi)
    yp = y_cord-(math.sqrt(width**2+height**2)/2)*math.sin(math.atan2(height, width)+angle/180*math.pi)
    return xp, yp
fig1 = plt.figure()   # 确保正方形在屏幕上显示一致,固定figure的长宽相等
axes1 = fig1.add_subplot(1, 1, 1)
# 输入矩形中心坐标,矩形方位角(逆时针为正)以及矩形的宽与高即可绘制矩形
x = 0.5
y = 0.5
phi = -30
w = 0.2
h = 0.1
xp, yp = convert_center_to_leftdown(x, y, phi, w, h)
square = plt.Rectangle(xy=(xp, yp), width=w, height=h, alpha=0.8, angle=phi)
axes1.add_patch(square)  # 把图形加载到绘制区域
axes1.axis('equal')
axes1.grid()
plt.show()

在这里插入图片描述

opencv-python绘制矩形框

函数 

cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) 
  • img:要画的圆所在的矩形或图像
  • pt1:矩形左上角的点
  • pt2:矩形右下角的点
  • color:线条颜色,如 (0, 0, 255) 红色,BGR
  • thickness:线条宽度

lineType:

  • 8 (or omitted) : 8-connected line
  • 4:4-connected line
  • CV_AA - antialiased line

shift:坐标点小数点位数

import numpy as np
import cv2 as cv
img = np.zeros((320, 320, 3), np.uint8) #生成一个空灰度图像
print img.shape # 输出:(320, 320, 3)
# 矩形左上角和右上角的坐标,绘制一个绿色矩形
ptLeftTop = (60, 60)
ptRightBottom = (260, 260)
point_color = (0, 255, 0) # BGR
thickness = 1 
lineType = 4
cv.rectangle(img, ptLeftTop, ptRightBottom, point_color, thickness, lineType)
# 绘制一个红色矩形
ptLeftTop = (120, 100)
ptRightBottom = (200, 150)
point_color = (0, 0, 255) # BGR
thickness = 1
lineType = 8
cv.rectangle(img, ptLeftTop, ptRightBottom, point_color, thickness, lineType)
cv.namedWindow("AlanWang")
cv.imshow('AlanWang', img)
cv.waitKey (10000) # 显示 10000 ms 即 10s 后消失
cv.destroyAllWindows()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现对二维码数据进行压缩

    Python实现对二维码数据进行压缩

    当前二维码的应用越来越广泛,包括疫情时期的健康码也是应用二维码的典型案例。本文的目标很明确,就是使用python,实现一张二维码显示更多信息,代码简单实用,感兴趣的可以了解一下
    2023-02-02
  • pandas读取excel时获取读取进度的实现

    pandas读取excel时获取读取进度的实现

    这篇文章主要介绍了pandas读取excel时获取读取进度的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 解决Jupyter Notebook “signal only works in main thread“问题

    解决Jupyter Notebook “signal only works&nb

    这篇文章主要介绍了解决Jupyter Notebook “signal only works in main thread“问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • selenium+python实现基本自动化测试的示例代码

    selenium+python实现基本自动化测试的示例代码

    这篇文章主要介绍了selenium+python实现基本自动化测试的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 聊聊通过celery_one避免Celery定时任务重复执行的问题

    聊聊通过celery_one避免Celery定时任务重复执行的问题

    Celery Once 也是利用 Redis 加锁来实现, Celery Once 在 Task 类基础上实现了 QueueOnce 类,该类提供了任务去重的功能,今天通过本文给大家介绍通过celery_one避免Celery定时任务重复执行的问题,感兴趣的朋友一起看看吧
    2021-10-10
  • python实现图像边缘检测

    python实现图像边缘检测

    这篇文章主要为大家详细介绍了python实现图像边缘检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • python drf各类组件的用法和作用

    python drf各类组件的用法和作用

    这篇文章主要介绍了python drf各类组件的用法和作用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2021-01-01
  • Python PySpider爬虫框架安装使用教程

    Python PySpider爬虫框架安装使用教程

    PySpider是一个Python编写的分布式网络爬虫框架,它可以帮助开发者快速构建和部署爬虫,并支持爬虫任务的分布式运行,PySpider基于Twisted网络框架和MongoDB数据库,具有高效、稳定、易用等特点,同时还提供了一套Web界面,可以方便地查看爬虫任务的运行状态和结果
    2023-11-11
  • Python切片操作实例分析

    Python切片操作实例分析

    这篇文章主要介绍了Python切片操作,结合实例形式较为详细的分析了Python切片相关的正向、反向、步长等使用技巧与相关注意事项,需要的朋友可以参考下
    2018-03-03
  • Python基本数据结构之字典类型dict用法分析

    Python基本数据结构之字典类型dict用法分析

    这篇文章主要介绍了Python基本数据结构之字典类型dict用法,结合实例形式分析了Python字典类型dict概念、原理、定义及基本使用技巧,需要的朋友可以参考下
    2019-06-06

最新评论