• 大小: 852KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签: YUV420  RGB  Bitmap  

资源简介

用海康采集卡做个项目 需要连续抓拍及缓冲图片 用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个文件信息

评论

共有 条评论