freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于delphi的攝像頭軟件控制設計(編輯修改稿)

2024-12-16 03:52 本頁面
 

【文章內(nèi)容簡介】 窗體,打開攝像頭,獲取視頻句柄等相關數(shù)據(jù),完成視頻信息的初步采集。 關閉設備 斷開系統(tǒng)與攝像頭的鏈接,釋放視頻窗口和內(nèi)存空間。 保存為 BMP 文件 實時拍攝,抓取瞬間圖像 ,并 保存為 BMP文件。 開始錄像 將視頻捕獲的圖像信息保存為 avi 文件,錄像過程完成音頻文件( *.wav)的同步錄制。該模塊分為短時錄制和長時錄制,短時錄制的錄制時間完全由用戶控制 。長時錄制時,當用戶輸入文件名后,在第一時間段內(nèi),程序?qū)?以用戶輸入的文件名為主文件名自動保存,保存過程中一旦發(fā)現(xiàn)硬盤空間不足即停止錄制,其后,每隔一小時系統(tǒng)自動存盤一次,并根據(jù)用戶輸入的文件名自動產(chǎn)生文件序號,作為新的 AVI 文件名進行保存。 停止錄像 視頻文件( *.avi)與音頻文件 (*.wav)錄制完成,釋放緩存中的視頻文件流。 復制到剪貼板 將實時抓取的瞬間圖像送往剪貼板。 顯示格式設置 設置視頻信息的顯示格式、圖像大小等。 視頻回放 對錄制好的視頻信息,用戶可隨時根據(jù)需要回放觀看。 幫助系統(tǒng) 介紹系統(tǒng) 的幫助文件、版權信息等,以方便于用戶使用該系統(tǒng) 。 控制 的 具體 實現(xiàn) 視頻捕獲流程 ( 1)創(chuàng)建“捕獲窗” 在進行視頻捕獲之前必需要先創(chuàng)建一個“捕獲窗”,并應以此為基礎進行所有的信息捕獲及設置操作?!安东@窗”可用 AVICap 窗口類的“ Cap Create Capture Window”函數(shù)來創(chuàng)建,在“捕獲窗”的創(chuàng)建過程中,需指定捕捉窗口的名字、窗口風格、窗口左上角坐標、窗口的寬度和高度以及父窗口的句柄和該捕捉窗口的 ID 等信息。 “捕獲窗”類似于標準控件,它的主要功能有: ① 動態(tài)地同視頻和音頻輸入器件連接或斷開; ② 對輸入的視頻流進行實時顯示; ③ 在捕獲時,可指定所用的文件名,并可將捕獲文件的內(nèi)容拷貝到另一個文件; ④ 設置捕獲速率、捕獲比例、顯示格式等信息; ⑤ 顯示控制視頻源、視頻格式及視頻壓縮的對話框; ( 2)建立捕獲窗和驅(qū)動程序間的關聯(lián) 單獨定義的捕獲窗是不能工作的,它必須與一個設備相關聯(lián)才能取得視頻信號。用向 WINDOWS 發(fā)送 CapDriver Connect 函數(shù)消息,使捕獲窗與其設備驅(qū)動程序相關聯(lián),以便捕獲視頻信息。 ( 3)設置視頻設備的屬性 通過設置 TcaptureParms 結構變量的各個成員變量,可以控制 設備的采樣頻率、中斷采樣按鍵、狀態(tài)行為。設置好 TcaptureParms 結構變量后,可以用函 數(shù)CapCaptureSetSetup 使設置生效。之后還可以用 CapPreviewScale、 CapPreviewRate 設置預覽的比例與速度,也可以直接使用設備的默認值。 ( 4)打開預覽 當捕獲窗和驅(qū)動程序建立關聯(lián)之后,用 CapPreview 啟動預覽功能,這時就可以在屏幕上看到來自攝像機的圖像了。利用函數(shù) CapOverlay 可選擇是否采用疊加模式預覽,以使系統(tǒng)資源占用小,視頻顯示速度加快。 通過以上四步就可以建立一 個基本的視頻捕獲程序,但如果想自己處理從設備捕獲到的視頻數(shù)據(jù),則要使用捕獲窗回調(diào)函數(shù)來處理,比如一幀一幀地獲得視頻數(shù)據(jù)或以流的方式獲得視頻數(shù)據(jù)等,因此,回調(diào)函數(shù)在視頻捕捉設計中具有舉足輕重的作用。 軟件的實現(xiàn) 新建一個工程,并將 加入新建的工程中。在工程的主窗體上放置所需的各種控件,并對各控件進行靜態(tài)的屬性設置,設計好的主窗體如圖 41 所示: 為了程序的需要,首先在主窗口的 PUBLIC 部分定義一些相關變量: dc:HDC。 //定義顯示設備 hdd:HDRAWDIB。 //設備無關位圖格式 BmpInfo,BmpInfo1:BITMAPINFO。//位圖格式 hWndC : THandle。 //視頻輸出句 Data:PChar。 //存放視頻輸出數(shù)據(jù)的內(nèi)存地址 圖 41 主窗體 在 上面所定義的全局變量中,位圖格式被定義為設備無關位圖。所謂設備無關位圖是指 WINDOWS 可在任何類型的顯示設備上顯示所存儲的圖像, 以后的以 BMP 為擴展名的文件都是設備無關位圖 (DIB)文件。 DIB 位圖的存儲特點為:①圖像存儲順序是從左到右,從下到 上。即存儲的位圖是顯示的位圖圖像的倒置。②象素位數(shù)為 1 的 DIB 位圖,每個字節(jié)存儲 8個象素。字節(jié)的最高位對應于最左邊的象素。③象素位數(shù)為 4的 DIB 位圖,每個字節(jié)存儲 2個象素。高 4位對應于最左邊的象素。 ④象素位數(shù)為 24 的 DIB 位圖,每個象素占三個字節(jié),從左到右分別存儲藍、綠、紅的顏色值 [10]。 DIB 文件由 4 個部分組成:位圖文件頭、位圖信息頭、顏色表和位圖圖像數(shù)據(jù) 。 管 理 位 圖 文 件 頭 、 位 圖 信 息 頭 和 顏 色 表 的 3 個 結 構 分 別 為 BITMAPFILEHEADER、 BITMAPINFOHEADER 和 RGBQUAD。其中 BITMAPINFOHEADER 和RGBQUAD 結構又通過 BITMAPINFO 來組合 。 DIB 位圖的信息頭如表 所示: 表 BITMAPINFOHEADER 數(shù)據(jù)域含義 數(shù)據(jù)域參數(shù) 數(shù)據(jù)域含義 biSize 本結構大小的字節(jié)數(shù) Width 位圖的寬度、單位為 象 素點 Height 位圖的高度、單位為 象 素點 數(shù)據(jù)域參數(shù) 數(shù)據(jù)域含義 Planes 指定設備所用的顏色位面數(shù),位面數(shù)決定了設備所使用的顏色數(shù), 2^位面數(shù)就是顏色數(shù)。如:單色屏幕位面數(shù)為 1,顏色數(shù)=2^1=2, 16色屏幕顏色位面數(shù)為 4,即 2^4 BitCount 象素的位數(shù) (如 1位位圖 、 12位位圖、 24位位圖等 ) Compression 壓縮方式 (0表示不壓縮 ) SizeImage 位圖數(shù)據(jù)的字節(jié)數(shù) XPelsPerMeter 水平分辨率(象素點 /米) YPelsPerMeter 垂直分辨率(象素點 /米) Clrused 圖像中使用的顏色數(shù) ClrImportant 圖像中重要的顏色數(shù) 雖然定義了位圖格式,但要讓捕獲的圖像能在視頻窗口中正確顯示出來,還必須保證該窗口的位圖格式與視頻所定義的位圖格式一致。其中,位圖格式變量Bmpinfo1 用于輸出顯示,它用來保證這種一致性。設計一個 SetBmpinfo1 過程來設置該位圖變量的格式: procedure ()。 begin :=sizeof(BITMAPINFO)。 :=224。 :=224。 :=1。 :=12。 :=808596553。 :=60000。 :=224。 :=224。 :=0。 :=0。 end。 在窗口初始化過程中,需要用定義過的格式和結構對相關變量進行初始化,使繪圖板和設備均處于打開狀態(tài),并提前為視頻數(shù)據(jù)分配內(nèi)存空間: procedure (Sender:TObject)。 begin setbmpinfo1()。 //設置顯示位圖的格式 dc:=getdc()。 //獲取顯示設備 hdd:=drawdibopen()。 //打開繪圖板 if hdd=null then (39。沒 有繪圖信息句柄 !39。)。 getmem(data,440000)。 //分配用于存放視頻數(shù)據(jù)的內(nèi)存 end。 在窗口的關閉過程中,需要釋放掉為視頻數(shù)據(jù)分配的內(nèi)存空間,如果視頻設備和繪圖板等設備沒有關閉,則關閉相關設備,將設備與變量置于初始狀態(tài),為下次使用作好準備: procedure (Sender: TObject。 var Action: TCloseAction)。 begin if hwndc0 then begin sendmessage(hwndc,wm_cap_driver_disconnect,0,0)。 end。 freemem(data)。 //釋放分配的內(nèi)存 drawdibclose(hdd)。 //關閉已打開的設備 end。 啟動攝像與音頻錄制 ( 1)啟動攝像 要啟動攝像頭開始攝像,首先要引入一個外部函數(shù)capCreateCaptureWindowA[5],這個函數(shù)來自于 動態(tài)鏈接庫中。調(diào)用 capCreateCaptureWindowA 函數(shù),就可以建立視頻捕捉窗體,通過向視頻捕捉窗體發(fā)送相應的消息函數(shù),即可實現(xiàn)捕捉窗口與設備的關聯(lián)、捕捉視頻、設置視頻的格式等操作。具體響應代碼如下: //以下為核心代碼,用于產(chǎn)生視頻窗口 hWndC := capCreateCaptureWindowA(39。 視頻窗口 39。,WS_CHILD or WS_VISIBLE ,,Form1.Handle,0)。 if hWndC 0 then //視頻窗口產(chǎn)生正常,初始化相關設備 begin SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0,0)。 SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0)。 SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0)。 SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0)。 SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0)。 SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 80, 0)。 SendMessage(hWndC,WM_CAP_SET_CALLBACK_FRAME,0,LongInt(@FrameCallBack))。
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1