资源简介
用海康采集卡做个项目 需要连续抓拍及缓冲图片 用SDK本身提供的图像抓拍太费时 调用间隔较小时导致画面卡顿现象;改用原始图像数据流回调函数RegisterImageStreamCallback进行抓图 但回调函数帧为YUV420格式 需要转成Bitmap才用用于显示及本地查看 在网上找了好多都是基于R Y+1 4075 V 128 G Y 0 3455 U 128 – 0 7169 V 128 B Y+1 779 U 128 公式运算且大多是C语言 改成C#后效率一直不高(尝试过消除浮点运算 查表法等) 后看到MSDN上的转换公式 http: msdn microsoft com en us library aa917087 aspx 后编写了此转换类库 转换一个D1帧 704 576 大约只需60ms左右 压缩包为Vs2010项目带使用示例 ">用海康采集卡做个项目 需要连续抓拍及缓冲图片 用SDK本身提供的图像抓拍太费时 调用间隔较小时导致画面卡顿现象;改用原始图像数据流回调函数RegisterImageStreamCallback进行抓图 但回调函数帧为YUV420格式 需要转成Bitmap才 [更多]
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace YUV4202RGB
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
openFileDialog1.InitialDirectory = AppDomain.CurrentDomain.baseDirectory;
}
private void btnOpenfile_Click(object sender EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
txtFileName.Text = openFileDialog1.FileName;
}
}
private void btnConvert_Click(object sender EventArgs e)
{
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
byte[] yuv = System.IO.File.ReadAllBytes(txtFileName.Text);
watch.Restart(); //计时开始
pictureBox1.Image = YUVHelper.YUV420frameToImage(yuv 704 576); //示例文件中帧宽为704像素高576像素
watch.Stop(); //计时结束
lblConvertDes.Text = string.Format(“YUV帧转换耗时:{0}毫秒.“ watch.ElapsedMilliseconds);
string strBmpFile = txtFileName.Text.Substring(0 txtFileName.Text.Length - 3) + “bmp“;
YUVHelper.YUV420SaveAsBMPFile(yuv 704 576 strBmpFile); //保存为BMP文件
}
private void btlExit_Click(object sender EventArgs e)
{
Close();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-04-24 18:55 YUV420ToRGB\
目录 0 2014-04-25 10:19 YUV420ToRGB\YUV4202RGB\
目录 0 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\bin\
目录 0 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\bin\Debug\
文件 1216566 2014-04-25 10:21 YUV420ToRGB\YUV4202RGB\bin\Debug\yuv02.bmp
文件 608256 2014-04-24 14:31 YUV420ToRGB\YUV4202RGB\bin\Debug\yuv02.yuv
文件 12800 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\bin\Debug\YUV4202RGB.exe
文件 28160 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\bin\Debug\YUV4202RGB.pdb
文件 11600 2014-04-25 10:21 YUV420ToRGB\YUV4202RGB\bin\Debug\YUV4202RGB.vshost.exe
文件 490 2010-03-17 22:39 YUV420ToRGB\YUV4202RGB\bin\Debug\YUV4202RGB.vshost.exe.manifest
文件 1634 2014-04-25 10:19 YUV420ToRGB\YUV4202RGB\Form1.cs
文件 6027 2014-04-25 10:19 YUV420ToRGB\YUV4202RGB\Form1.Designer.cs
文件 6020 2014-04-25 10:19 YUV420ToRGB\YUV4202RGB\Form1.resx
目录 0 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\obj\
目录 0 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\obj\x86\
目录 0 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\
文件 4440 2014-04-24 19:15 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6329 2014-04-25 10:21 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 388 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\GenerateResource.read.1.tlog
文件 886 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\GenerateResource.write.1.tlog
目录 0 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\TempPE\
文件 1030 2014-04-25 10:19 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV4202RGB.csproj.FileListAbsolute.txt
文件 12800 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV4202RGB.exe
文件 180 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV4202RGB.Form1.resources
文件 28160 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV4202RGB.pdb
文件 180 2014-04-25 10:20 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV4202RGB.Properties.Resources.resources
文件 1244 2014-04-25 10:21 YUV420ToRGB\YUV4202RGB\obj\x86\Debug\YUV420ToRGB.csproj.FileListAbsolute.txt
文件 491 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\Program.cs
目录 0 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\Properties\
文件 1364 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\Properties\AssemblyInfo.cs
文件 2870 2014-04-24 11:39 YUV420ToRGB\YUV4202RGB\Properties\Resources.Designer.cs
............此处省略8个文件信息
- 上一篇:用C语言读写SGY格式的地震数据文件
- 下一篇:B样条曲面C++程序
相关资源
- RGB与HSI空间相互转化 C++
- PCL点云-RGBD图像ICP迭代最近点之点云配
- C语言实现的bitmap位图代码分享
- 24位RGB数据保存为BMP图片
- yuv422与yuv420互转
- 用C语言写bitmap
- bmp 图片转YUV420数组
- c语言 根据坐标 截取yuv420p 区域 保存
- rgb24转yuv420高效率 完整代码,C++实现
- jpg jpeg 解码 转 bmp RGB vs2013 c++
- c++ bmp位图修改读取头文件
- YUV数据转换成opencv的Mat的RGB<
- RGB图像通道值分离、最邻近插值法、
- c++实现RGB与HSI互相转换.docx
- ATMEL tiny85做一个小的RGB蓝牙控制器(
- C++实战源码-获取图像RGB值
- opencv2深度图滤波
- 龙剑游戏(c开发)
- opencv RGB转换成HSV并且从R G B H S V三个
- 基于S3C6410+CMOS摄像头的H264图像压缩
- 快速的将YUV444转成YUV420格式数据
评论
共有 条评论