如何在媒体播放器(例如 MPV)中播放 opencv 帧?

发布于 2025-01-10 20:09:06 字数 822 浏览 0 评论 0原文

我只是定义窗口并在此脚本中播放视频,但如何通过媒体播放器而不是 opencv 播放视频?理想情况下,我会进行图像处理并能够在 mpv 中实时查看它。

#!/usr/bin/python

from cv2 import cv2


def main():
    
    def rescale_frame(frame, percent):
        width = int(frame.shape[1] * percent / 100)
        height = int(frame.shape[0] * percent / 100)
        dim = (width, height)
        return cv2.resize(frame, dim, interpolation=cv2.INTER_AREA)

    cap = cv2.VideoCapture("test.webm")

    while cap.isOpened():
        ret, frame = cap.read()
        rescaled = rescale_frame(frame, percent=50)
        if ret is True:
            cv2.imshow('Frame', rescaled)

            if cv2.waitKey(25) & 0xFF == ord('q'):
                break
        else:
            break

    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    main() 

I just define the window and play the video in this script, though how would I play the video through a media player instead of opencv? Ideally, I'd do my image processing and be able to view it in mpv in real time.

#!/usr/bin/python

from cv2 import cv2


def main():
    
    def rescale_frame(frame, percent):
        width = int(frame.shape[1] * percent / 100)
        height = int(frame.shape[0] * percent / 100)
        dim = (width, height)
        return cv2.resize(frame, dim, interpolation=cv2.INTER_AREA)

    cap = cv2.VideoCapture("test.webm")

    while cap.isOpened():
        ret, frame = cap.read()
        rescaled = rescale_frame(frame, percent=50)
        if ret is True:
            cv2.imshow('Frame', rescaled)

            if cv2.waitKey(25) & 0xFF == ord('q'):
                break
        else:
            break

    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    main() 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文