【Python】matplotlib替代cv画虚线矩形框

该代码读取一个视频文件,使用OpenCV在每一帧上绘制矩形,然后保存处理后的视频,并通过Matplotlib进行实时显示。矩形坐标(a,b)为(2,3)和(140,160),并以蓝色实线描绘。处理的每一帧也会保存为图片文件。
摘要由CSDN通过智能技术生成
import cv2 as cv
import matplotlib.pyplot as plt
import matplotlib.patches as patches
plt.ion() #开启动态绘图
plt.figure() #建立图窗
def main():
    cap = cv.VideoCapture("./data/testvideo1.mp4")
    sz = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))
    fourcc = cv.VideoWriter_fourcc('m', 'p', '4', 'v')
    video_write = cv.VideoWriter("./data/1.mp4", fourcc, 30, sz, True)
    frame_cnt = 1
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        a = (2, 3)
        b = (140, 160)
        cv.rectangle(frame, a, b, (255, 0, 0), 2, )
        rect = patches.Rectangle(a, b[0]-a[0], b[1]-a[1], linewidth=1, edgecolor='black', facecolor='none', linestyle='dotted')
        cv.imshow('Demo', frame)
        cv.imwrite("./image/{}.jpg".format(frame_cnt), frame)
        frame_cnt = + 1
        cv.waitKey(100)  # 显示 1000 ms 即 1s 后消失
        plt.imshow(frame[:, :, ::-1])
        currentAxis = plt.gca()
        currentAxis.add_patch(rect)
        plt.pause(0.01)
if __name__ == "__main__":
    main()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Matplotlib中,可以使用`linestyle`参数来指定线条的样式。要虚线,可以将`linestyle`设置为`'--'`,例如: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y, linestyle='--') plt.show() ``` 这将绘制一个由虚线组成的折线图。如果要绘制其他类型的虚线,可以将`linestyle`设置为其他值,例如`':'`表示点线,`'-.'`表示点划线等。 ### 回答2: MatplotlibPython中最常用的数据可视化库之一。它提供了多种图形绘制功能,包括折线图,散点图,饼图等。在绘制这些图形时,经常需要用到虚线来表示某些特定的含义。 Matplotlib提供了多种线条样式,其中虚线样式是非常常用的一种。使用虚线需要用到plot函数的linestyle参数,设置为'dashed'或'dotted',分别代表虚线和点状虚线。 以下是一个简单的示例代码: ```python import matplotlib.pyplot as plt import numpy as np # 生成x和y的值 x = np.linspace(0, 10, 100) y = np.sin(x) # 绘制虚线的折线图 fig, ax = plt.subplots() ax.plot(x, y, linestyle='dashed', linewidth=2, label='sin(x)') ax.set_xlabel('x') ax.set_ylabel('y') ax.legend() plt.show() ``` 在这个示例代码中,我们生成了x和y的值,然后使用plot函数绘制了一条虚线的折线图。在plot函数中,我们使用了linestyle参数将线条样式设置为虚线,同时也设置了线条宽度和标签。 除了虚线之外,Matplotlib还提供了其他类型的线条样式,包括实线、点状线、划线等。在使用这些样式时,只需要将linestyle参数设置为对应的字符串即可。 总之,Matplotlib是一个非常强大的数据可视化库,可以方便地实现各种绘图需求,包括虚线的绘制。通过在plot函数中指定linestyle参数,我们可以轻松地绘制虚线图形,实现数据可视化效果。 ### 回答3: 使用Python中的Matplotlib库可以轻松地绘制各种类型的图形,包括虚线图形。Matplotlib库提供了许多用于修改线的样式和外观的选项,可以轻松地绘制虚线。 要在Matplotlib中绘制虚线,可以使用linestyle参数。该参数允许我们指定线条的样式,包括虚线。linestyle参数接受一个字符串参数,用于指定线条的样式。下面是几个示例: 1. '-': 实线 2. '--': 虚线 3. '-.': 点划线 4. ':': 点线 在绘制折线图时,可以通过在plot()函数中添加linestyle参数来指定线条的样式。例如,要绘制一个黑色虚线图形,可以输入: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y, linestyle='--', color='black') plt.show() ``` 此代码将绘制一个由五个数据点形成的黑色虚线,其中每个数据点之间都有一个虚线。 如果您希望将多个线条绘制在同一张图中,您可以使用hold()函数来保留当前的绘图,例如: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y1 = [2, 4, 6, 8, 10] y2 = [1, 3, 5, 7, 9] plt.plot(x, y1, linestyle='--', color='black') plt.hold(True) plt.plot(x, y2, linestyle='-', color='red') plt.show() ``` 这个程序将绘制两个线条,一个黑色虚线和一个红色实线,两个线条之间没有任何间隔。 总之,Matplotlib是一个非常强大的绘图库,可以允许用户以各种不同的方式控制其线条的外观。只需使用linestyle参数并将其设置为所需的样式即可绘制虚线图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RockWang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值