使用Emgu.CV将tif保存视频,并用AxWindowsMediaPlayer打开

news/2025/1/20 23:52:53/

1. 使用Emgu.CV将tif保存视频,非常简单

打开:

 VideoWriter   writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);

写入

 writer.Write(mat);

关闭

 writer.Dispose();

完整代码如下:


using Emgu.CV;
using System;
using System.Drawing;public class CVideoFiles{private VideoWriter writer;private bool isOpen = false;// 打开视频文件public void OpenVideo(string name, int displayRate, int width, int height){// 如果视频已经打开,抛出异常if (isOpen){throw new InvalidOperationException("视频文件已经打开,请关闭当前文件后再打开新的文件。");}// 打开视频文件并设置编码器,帧率,分辨率writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);// 如果视频文件没有成功打开,抛出异常if (!writer.IsOpened){throw new InvalidOperationException("打开视频文件失败,请检查文件路径或编码器设置。");}isOpen = true;}// 写入一帧视频public void WriteVideo(Mat mat){if (!isOpen){throw new InvalidOperationException("视频尚未打开,无法写入视频帧。");}// 检查视频帧数据是否有效if (mat == null || mat.IsEmpty){throw new ArgumentException("无效的帧数据,无法写入视频。");}// 写入视频帧writer.Write(mat);}// 关闭视频文件public void CloseVideo(){if (isOpen){// 释放 VideoWriter 对象writer.Dispose();isOpen = false;}else{throw new InvalidOperationException("视频文件未打开,无法关闭。");}}}

2. 保存的avi视频,用AxWindowsMediaPlayer打开

   给AxWindowsMediaPlayer控制的URL 赋值,就会自动播放,如:

   axWindowsMediaPlayer1.URL = "c:\\1.avi";

如果AxWindowsMediaPlayer打不开,提示报错,说明MediaPlayer缺少解码器,  从   Download K-Lite Codec Pack (codecguide.com) 下载K-Lite_Codec_Pack_1865_Standard .exe,安装就可以了。


http://www.ppmy.cn/news/1564782.html

相关文章

青少年CTF练习平台 EasyMD5解题思路

题目 EasyMD5 PHP弱类型/弱等于的判断 翻译 上传之后网页提示:Not a PDF! angry!!! get out from my page 修改文件后缀为pdf 再次上传,答案出来了 s878926199a s155964671a 成功获取flag

【18】Word:明华中学-儿童医保❗

目录 题目​ NO2 NO3 NO4 NO5 NO6 NO7 NO8 NO9 题目 NO2 布局→页面设置对话框→纸张方向:横向→纸张大小:A3 ;页面设置对话框:直接输入纸张大小的宽度和高度即可→页面设置对话框:上下左右边距→版式&…

thinkphp:实现压缩文件上传、解压、文件更名、压缩包删除功能,增加trycatch

代码 public function upload_firstsure() {try {// 检查是否有文件上传if (!isset($_FILES[file]) || !is_uploaded_file($_FILES[file][tmp_name])) {throw new \Exception(未接收到文件或文件上传失败);}// 获取上传的文件$uploaded_file $_FILES[file][tmp_name];$file_t…

计算机网络 第一章 概述 1.5

1.5 计算机网络体系结构 1.5.1 常见的三种计算机网络体系结构 为了使不同体系结构的计算机网络都能互连起来,国际标准化组织于1977年成立了专门机构研究该问题,他们提出了一个使全世界各种计算机可以互连成网的标准框架——开放系统互连基本参考模型&am…

PyTorch迁移学习与指南框架

前言: 在深度学习领域,迁移学习是一种强大的技术,它允许我们利用在大规模数据集上预训练的模型来解决数据规模较小的新任务。本文将详细介绍PyTorch框架中的迁移学习基本概念及其在计算机视觉(CV)开发中的应用。 一、…

怎样应对发现的小红书笔记详情API安全风险?

及时切断风险源 暂停 API 访问权限:一旦发现安全风险,如可疑的 API 调用行为(异常高的请求频率、来自未授权 IP 地址的访问等),首先要做的是暂停可能涉及风险的 API 访问权限。如果是通过 API 密钥进行访问控制&#x…

【遥感目标检测】【数据集】DOTA:用于航空图像中目标检测的大规模数据集

DOTA:A large-scale dataset for object detection in aerial images DOTA:用于航空图像中目标检测的大规模数据集 CVPR 2018 论文地址 数据集地址 0.论文摘要 目标检测是计算机视觉中一个重要而富有挑战性的问题。尽管过去十年见证了自然场景中目标检测的重大进展…

Sass初探:嵌套只是开始,解锁Sass更多功能

文章目录 1. 安装Sass2. Sass编译成CSS3. 设置编译后的CSS格式4. Sass和Scss有什么区别?5. Sass变量的使用6. 选择器嵌套写法7. Mixin(混合)8. extend(继承)9. Sass中的模块化(import)10. Sass中的模块化(use) 1. 安装Sass 要安装 Sass,你可以根据你的开…