![計算機畢業(yè)論文--多媒體攝像頭程序開發(fā)與應用.doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-2/24/4e3698e0-6ed7-4b0d-be1c-aec7f683fa44/4e3698e0-6ed7-4b0d-be1c-aec7f683fa441.gif)
![計算機畢業(yè)論文--多媒體攝像頭程序開發(fā)與應用.doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-2/24/4e3698e0-6ed7-4b0d-be1c-aec7f683fa44/4e3698e0-6ed7-4b0d-be1c-aec7f683fa442.gif)
![計算機畢業(yè)論文--多媒體攝像頭程序開發(fā)與應用.doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-2/24/4e3698e0-6ed7-4b0d-be1c-aec7f683fa44/4e3698e0-6ed7-4b0d-be1c-aec7f683fa443.gif)
![計算機畢業(yè)論文--多媒體攝像頭程序開發(fā)與應用.doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-2/24/4e3698e0-6ed7-4b0d-be1c-aec7f683fa44/4e3698e0-6ed7-4b0d-be1c-aec7f683fa444.gif)
![計算機畢業(yè)論文--多媒體攝像頭程序開發(fā)與應用.doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-2/24/4e3698e0-6ed7-4b0d-be1c-aec7f683fa44/4e3698e0-6ed7-4b0d-be1c-aec7f683fa445.gif)
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
系 別 信息技術系 學 號 18 冀中職業(yè)學院畢業(yè)論文多媒體攝像頭程序開發(fā)與應用論文作者: 指導教師: 專業(yè) 領 域 : 計算機應用 論文提交日期:2011-4-2 2011 年 4 月冀中職業(yè)學院畢業(yè)論文多媒體攝像頭程序開發(fā)與應用系 別 信息技術系 專 業(yè) 計算機應用 班 級 學 號 姓 名 指導教師 _2011年 4月 2 日摘 要隨著多媒體電腦技術的發(fā)展與普及,電腦在人們的生活中已是不可或缺的一部分,多媒體技術廣泛應用于生活、教學、研發(fā)等各個領域。而多媒體攝像頭在其中扮演著一個十分重要的角色,應用于娛樂、通訊、安全等方面。操作攝像頭方便簡單,而在微軟公司最新推出的Windows7操作系統(tǒng)中并沒有像Windows XP那樣給用戶提供一個簡易操作攝像頭的程序,針對這種情況本文講述了如何利用DirectShow技術開發(fā)一個在Windows7以及Windows其他版本的操作系統(tǒng)中都可以使用的多媒體攝像頭程序。除此之外,該程序還可以用做單路視頻監(jiān)控軟件來使用,足可以滿足小型商店以及家庭的需求。關鍵詞:多媒體;攝像頭程序;DirectShowDeveloping and Applying of the Multimedia Cameras Program AbstractWith the development of computer technology and multimedia popularization, the computer has already been an integral part in peoples life. The multimedia technology is widely used in many different fields, such as teaching, research and development, and so on. However, multimedia camera plays a very important role, which is applied in entertainment, communication, security, etc. Operating cameras is not only convenient, but also easy. While the latest product, Windows7 operating systems by Microsoft, does not like Windows - XP which offers users a simple camera operation program. According to this kind of situation, this article talks about how to use DirectShow to develop a program which makes the multimedia camera can be used in Windows7 and other series of Windows operating system. In addition, the program also can be used as single video monitoring software, which can totally satisfy the demand of small-sized stores and family.Key words:Multimedia; Camera Program; DirectShow目 錄一概 論1(一)攝像頭程序的概況1(二)DYCap(多媒體攝像頭程序)的特征1(三)DirectShow組件原理分析1二系統(tǒng)介紹及主要功能的實現(xiàn)方法2(一)開發(fā)工具及運行環(huán)境2(二)主要功能以及實現(xiàn)方法21. 視頻預覽22. 視頻錄制63. 圖片采集64. 換膚功能8三小結9參考文獻10致謝10附錄101. 安裝程序102. 源碼10一概 論(一)攝像頭程序的概況攝像頭(Camera)又稱為電腦相機,電腦眼等,是一種視頻輸入設備,被廣泛的運用于視頻會議,遠程醫(yī)療及實時監(jiān)控等方面。普通的人也可以彼此通過攝像頭在網(wǎng)絡進行有影像、有聲音的交談和溝通。另外,人們還可以將其用于當前各種流行的數(shù)碼影像,影音處理。攝像頭程序是在操作系統(tǒng)之上人和攝像頭交互的一種平臺,通過攝像頭程序可以將攝像頭捕捉到的視頻信號轉換成數(shù)字模式,并加以壓縮后轉換到計算機上運用。(二)DYCap(多媒體攝像頭程序)的特征本程序為用戶提供豐富友好的操作界面,支持多個視頻設備以及解碼器的選擇,集視頻預覽、視頻錄制、圖片采集等主要功能為一體,并且為用戶提供了非常方便的管理平臺。根據(jù)不同需要用戶可以自己選擇相應的解碼器來錄制視頻和進行圖片采集。除此之外,該軟件還可以當做簡單的單路視頻監(jiān)控軟件使用,其實時預覽、視頻錄制和圖片采集的功能足可以滿足小型超市以及家庭監(jiān)控的需求。(三)DirectShow組件原理分析DirectX是Microsoft公司為游戲和其他高性能多媒體應用所提供的一套底層應用程序編程接口。而DirectShow是DirectX組件的一部分,提供對多媒體數(shù)據(jù)流的高質(zhì)量捕獲和回放。DirectShow技術是建立在DirectDraw和DirectSound組件基礎之上的,它通過DirectDraw對顯卡進行控制以顯示視頻,通過DirectSound對聲卡進行控制以播放聲音。 DirectShow可提供高質(zhì)量的多媒體流的捕獲和回放功能;支持多種媒體格式,包括ASF(Advanced Systems Format),MPEG(Motion Picture Experts Group),AVI(Audio-Video Interleaved),MP3(MPEG Audio Layer-3)和WAV聲音文件;可以從硬件上捕獲媒體數(shù)據(jù)流;可以自動檢測并使用視頻和音頻加速硬件。因此,DirectShow可以充分發(fā)揮媒體的性能,提高運行速度,可以簡化媒體播放、媒體間的格式轉換和媒體捕獲等工作。同時,它還具有極大的可擴展性和靈活性,可以由用戶自己創(chuàng)建組件,并將這個組件加入DirectShow結構中以支持新的格式或特殊效果。應用程序與DirectShow組件以及DirectShow所支持的軟硬件之間的關系如圖1所示:二系統(tǒng)介紹及主要功能的實現(xiàn)方法(一)開發(fā)工具及運行環(huán)境1. 開發(fā)工具本程序采用C#語言和最新版的Visual Studio 2010(C#)+ DirectShow開發(fā)包 + Microsoft .NET Framework 4開發(fā)。2. 運行環(huán)境DirectX 9.0(或更高版本) + Microsoft .NET Framework 4 + Windows操作系統(tǒng)。3. 硬件要求攝像頭一個;電腦主機最低配置:處理器 1GHz 內(nèi)存 512MB 磁盤空間 850MB;電腦主機推薦配置:處理器 2GHz 內(nèi)存 2GB 磁盤空間(最小值) 850MB;(二)主要功能以及實現(xiàn)方法1. 視頻預覽程序主界面:(1)程序運行后會自動搜索本地計算機可用視頻設備并將其一一列舉供用戶選擇,主要代碼如下:/列舉視頻設備并將其添加到Combobox1foreach(DsDevicedsinDsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice) comboBox1.Items.Add(ds.Name); comboBox2.Items.Add(); /列舉解碼器并將其添加到comboBox2 foreach(DsDevicedsinDsDevice.GetDevicesOfCat(FilterCategory.VideoCompressorCategory) comboBox2.Items.Add(ds.Name); (2)點擊打開視頻,實現(xiàn)視頻預覽,主要代碼如下: 代碼一圖像初始化:/獲取IGraphBuilder接口對象graphBuilder = (IGraphBuilder) new FilterGraph();/獲取ICaptureGraphBuilder2接口對象ICaptureGraphBuilder2 captureGraphBuilder = null;captureGraphBuilder = (ICaptureGraphBuilder2) new CaptureGraphBuilder2();/獲取IGraphBuilder接口的IMediaControl對象mediaControl = (IMediaControl) this.graphBuilder;/獲取m_graphBuilder 接口對象的IMediaEventEx對象mediaEventEx = (IMediaEventEx)graphBuilder;/設置ICaptureGraphBuilder2的IGraphBuilder接口為當前對象int hr = captureGraphBuilder.SetFiltergraph(this.graphBuilder);DsError.ThrowExceptionForHR(hr);/添加視頻源設備hr = graphBuilder.AddFilter(theDevice, source filter);DsError.ThrowExceptionForHR(hr);/添加視頻解碼器if (theCompressor != null) hr = graphBuilder.AddFilter(theCompressor, compressor filter); DsError.ThrowExceptionForHR(hr);/通過theVideoDevice(IBaseFilter)視頻接口對象的Preview Pin預覽hr=captureGraphBuilder.RenderStream(PinCategory.Preview, MediaType.Video, theDevice, null, null);DsError.ThrowExceptionForHR(hr);/獲取theVideoDevice的IAMVideoControl對象IVideoWindow videoWindow = null;videoWindow = (IVideoWindow) graphBuilder;/設置panel1為視頻顯示窗口hr = videoWindow.put_Owner(panel1.Handle);DsError.ThrowExceptionForHR(hr);/去除視頻窗口邊框hr=videoWindow.put_WindowStyle(WindowStyle.Child WindowStyle.ClipChildren);DsError.ThrowExceptionForHR(hr);/把視頻窗口綁定在panelhr = videoWindow.SetWindowPosition(0, 0, panel1.Width, panel1.Height);DsError.ThrowExceptionForHR(hr);/釋放接口資源Marshal.ReleaseComObject(captureGraphBuilder);代碼二開始預覽:ImediaControl對象接口提供三種控制狀態(tài):開始(Run())、暫停(Pause())和停止(Stop())。預覽界面如下圖所示:開始預覽代碼如下:if (mediaControl != null) mediaControl.Run();2. 視頻錄制視頻錄制原理及實現(xiàn)方法與視頻預覽大體相同,用戶可以根據(jù)不同需求選擇不同的解碼器來錄制不同質(zhì)量的視頻文件,而其實現(xiàn)方法也十分簡單只需在圖像初始化的時候新建IBaseFilter和IFileSinkFilter兩個接口對象,從ICaptureGraphBuilder2接口上調(diào)用SetOutputFileName函數(shù)將視頻文件輸出,與此同時從ICaptureGraphBuilder2接口調(diào)用RenderStream函數(shù)選擇解碼器來對視頻流進行壓縮。視頻錄制相關代碼如下:/初始化IbaseFilter接口IBaseFilter mux;/初始化IbaseFilter接口IFileSinkFilter sink;/輸出視頻文件hr = captureGraphBuilder.SetOutputFileName(MediaSubType.Avi, C:video.avi, out mux, out sink);DsError.ThrowExceptionForHR(hr);/選擇解碼器對視頻流進行壓縮hr = captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, theDevice, theCompressor, mux);DsError.ThrowExceptionForHR(hr);/釋放接口資源Marshal.ReleaseComObject(mux);Marshal.ReleaseComObject(sink); 3. 圖片采集拍照界面集圖片采集、參數(shù)設定、查看、管理等功能為一體,用戶可以根據(jù)不同需要設置圖片質(zhì)量,其友好的操作界面及方便的管理功能,令人耳目一新。拍照模式主界面:(1)圖片采集的實現(xiàn)方法是在圖像初始化成功的基礎之上,利用DirectShow開發(fā)包提供的圖像捕獲接口(SampleGrabber)接口進行圖片捕獲,SampleGrabber圖像捕獲效率高,利用該接口下的回調(diào)函數(shù)(SetCallBack)可輕松實現(xiàn)對源視頻流的捕獲并將其寫入BMP文件中,這樣便實現(xiàn)的對源視頻流的圖片采集。圖片采集相關代碼如下:/創(chuàng)建IbaseFilter接口對象capFilterIBaseFiltercapFilter;/創(chuàng)建IsampleGrabber接口對象sampGrabberISampleGrabber sampGrabber; /當”拍照”按鈕按下時,調(diào)用IsampleGrabber對象的SetCallback函數(shù)hr = sampGrabber.SetCallback(this, 1);/將捕獲到的源視頻流轉換并將其寫入BMP文件中int w = videoInfoHeader.BmiHeader.Width;int h = videoInfoHeader.BmiHeader.Height;if( (w & 0x03) != 0) | (w 4096) | (h 4096) )return;int stride = w * 3;GCHandle handle = GCHandle.Alloc( savedArray, GCHandleType.Pinned );int scan0 = (int) handle.AddrOfPinnedObject();scan0 += (h - 1) * stride;Bitmap b = new Bitmap( w, h, -stride, PixelFormat.Format24bppRgb, (IntPtr) scan0 );(2)圖片采集參數(shù)設定界面如下圖所示:該程序封裝在DirectShow動態(tài)庫中,可以直接調(diào)用,調(diào)用代碼:DsUtils.ShowCapPinDialog( capGraph, capFilter, this.Handle );4. 換膚功能本程序采用第三方控件(IrisSkin2)實現(xiàn)對程序界面的美化,提供多種風格的皮膚供用戶選擇,操作簡便,界面友好。程序皮膚設置如圖所示:程序加載皮膚代碼:skinEngine1.SkinF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村溝渠清淤合同范本
- 2025年度滑雪場教練員培訓與青少年滑雪普及推廣合同
- 2025年度教育管理信息平臺數(shù)據(jù)遷移與集成合同
- 監(jiān)理工作中施工單位的資金管理
- 農(nóng)村垃圾地合同范本
- 190萬投資理財合同范本
- 共同辦廠合同范本
- 醫(yī)師兼職合同范本
- 2025年金屬真空鍍膜行業(yè)深度研究分析報告
- 北京保安勞務合同范例
- GB 4793-2024測量、控制和實驗室用電氣設備安全技術規(guī)范
- 廣電雙向網(wǎng)改造技術建議書
- 項目人員管理方案
- 重大火災隱患判定方法
- 2024年電工(高級技師)考前必刷必練題庫500題(含真題、必會題)
- 《證券投資學》全套教學課件
- 2024年全國各地中考語文試題匯編:名著閱讀
- 公司組織架構與管理體系制度
- 2024-2030年中國涂碳箔行業(yè)現(xiàn)狀調(diào)查與投資策略分析研究報告
- 2024-2030年中國派對用品行業(yè)供需規(guī)模調(diào)研及發(fā)展趨勢預測研究報告
- 傳染病監(jiān)測預警與應急指揮大數(shù)據(jù)引擎平臺建設需求
評論
0/150
提交評論