




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于嵌入式的家庭遠程監(jiān)控系統(tǒng)項目總結使用v4l2視頻數(shù)據(jù)采集一、打開設備文件,和普通文件那樣打開即可二、捕捉視頻的前期準備1、獲取參數(shù)和設置要求v4l2_capability結構體通過VIDIO_QUERYCAP操作命令獲取設備驅動的參數(shù),保存于v4l2_capability結構體中,包括driver(驅動名),card(設備名),bus_info(總線信息)等v4l2_cropcap結構體先設置v4l2_cropcap的type域,再通過VIDIO_CROPCAP操作命令獲取設備捕捉能力的參數(shù),保存于v4l2_cropcap結構體中,包括bounds(最大捕捉方框的左上角坐標和寬高),def
2、rect(默認捕捉方框的左上角坐標和寬高)等v4l2_format結構體先填好v4l2_format的各個域,如type(傳輸流類型),fmt.pix.width(寬),fmt.pix.heigth(高),fmt.pix.field(采樣區(qū)域,如隔行采樣),fmt.pix.pixelformat(采樣類型,如YUV4:2:2),然后通過VIDIO_S_FMT操作命令設置視頻捕捉格式2、初始化內存映射v4l2_requestbuffers結構體先填好v4l2_requestbuffers的一些域,如count(幀緩沖個數(shù))等,通過操作命令VIDIO_REQBUFS根據(jù)v4l2_requestbu
3、ffers的要求向內核申請幀緩沖向內存申請相對應的映射空間,然后再使用mmap()系統(tǒng)調用實現(xiàn)內核中的幀緩沖和內存中映射空間相互映射v4l2_buffer結構體由于在內核中申請幀緩存和在內存中申請映射空間不同,后者申請后返回首地址,以后可以通過該首地址向映射空間操作,而前者沒有,所以得要v4l2_buffer結構體做中介。先填好v4l2_buffer結構體的一些域,如index(幀號),type(傳輸流類型),然后通過操作命令VIDIO_QUERYBUF獲取相對應于幀號的緩沖幀的信息,并保存于v4l2_buffer結構體中三、捕捉視頻1、啟動攝像頭捕捉視頻v4l2_buf_type枚舉類型將其
4、設置為V4L2_BUF_TYPE_VIDIO_CAPTURE類型,然后使用VIDIOC_STREAMON操作命令根據(jù)v4l2_buf_type的值開始捕捉視頻2、不斷的讀取數(shù)據(jù)用select()系統(tǒng)調用輪詢文件描述符集合中的設備是否準備好,如果準備好,即只要從映射空間中讀取數(shù)據(jù)即可注意:在這兩個過程中,需要不斷地將已經(jīng)讀取完數(shù)據(jù)的緩沖幀出隊列,并插進到隊列尾,以存儲攝像頭捕捉到的新數(shù)據(jù)3、停止攝像頭捕捉視頻和啟動攝像頭捕捉視頻類似,只是改用VIDIO_STREAMOFF操作命令罷了四、關閉設備文件,和普通文件那樣關閉即可背景:
5、0; 閱讀新聞基于嵌入式的家庭遠程監(jiān)控系統(tǒng)項目總結SDL學習入門日期:2012-07-14來源:Linux社區(qū) 作者:xuyuanfan77字體:大 中 小1、搭建開發(fā)平臺 (1)sudo apt-get install libsdl1.2-dev 最基本的開發(fā)包 (2)sudo apt-get install libsdl-image1.2-dev &
6、#160; 關于圖像的開發(fā)包 (3)sudo apt-get install libsdl-mixer1.2-dev 關于音頻的開發(fā)包 (4)sudo apt-get install libsdl-ttf2.0-dev 關于文字的開發(fā)包 安裝好以上四個開發(fā)包,開發(fā)平臺算是搭建好了
7、0; 2、最有代表性的簡單程序,包括圖像,文字,音樂,注釋如下:1. #include <stdio.h> 2. #include <stdlib.h> 3. #include <SDL/SDL.h> 4. #include <SDL/SDL_image.h> 5. #include <SDL/SDL_mixer.h>
8、 6. #include <SDL/SDL_ttf.h> 7. 8. static SDL_Surface* screen;/SDL窗口 9. 10. int main(int argc, char *argv) 11. 12. 13. int qui
9、t = 0; 14. SDL_Surface *text_sur;/文字容器 15. SDL_Surface *background;/圖像容器 16. SDL_Event event; 17. SDL_Color color;
10、0; 18. SDL_Rect srect, drect; 19. Mix_Music *bgsound; 20. TTF_Font *font; 21. 22. /初始化SDL 23.
11、 if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0) 24. 25. fprintf(stderr, "SDL init error:%sn", SDL_GetError(); 26.
12、 exit(0); 27. 28. atexit(SDL_Quit);/注冊退出時調用的操作 29. 30. 31. /設置SDL屏幕大小
13、 32. screen = SDL_SetVideoMode(600, 400, 24, SDL_HWSURFACE); 33. if (screen = NULL) 34. 35. fpr
14、intf(stderr, "Set video mode failure:%sn", SDL_GetError(); 36. exit(0); 37. 38. 39. /設置SDL窗口標題
15、; 40. SDL_WM_SetCaption("test", NULL); 41. 42. /*顯示圖像*/ 43. background = IMG_Load("background.jpg");/導入圖像文件,并將圖像放入文字容器 44.
16、160; srect.x = 0; 45. srect.y = 0; 46. srect.w = background->w; 47. srect.h = background->h; 48.
17、drect = srect;/設置截取范圍 49. SDL_BlitSurface(background, &srect, screen, &drect);/將圖像容器放入SDL窗口 50. 51. /*顯示文字*/ 52. /初始化TTF
18、53. if (TTF_Init() < 0) 54. 55. fprintf(stderr, "TTF init error:%sn", SDL_GetError(); 56.
19、160; return; 57. 58. 59. font = TTF_OpenFont("test.ttf", 40);/導入字體文件 60. color.r = 255; 61.
20、60; color.g = 0; 62. color.b = 0;/設置文字顏色 63. text_sur=TTF_RenderText_Solid(font, "Hello, Welcome to GAME!", color);/將文字放入文字容器 64.
21、; 65. srect.x = 0; 66. srect.y = 0; 67. srect.w = text_sur->w; 68. srect.h = text_sur->h; &
22、#160;69. 70. drect.x = (600 - text_sur->w) / 2; 71. drect.y = (400 - text_sur->h) / 2; 72. drect.w
23、= text_sur->w; 73. drect.h = text_sur->h;/設置截取范圍 74. SDL_BlitSurface(text_sur, &srect, screen, &drect);/將文字容器放入SDL窗口 75. 76.
24、160; SDL_UpdateRect(screen, 0, 0, 600, 400);/更新SDL窗口,讓新添加的容器顯示 77. 78. /*播放聲音*/ 79. Mix_OpenAudio(44100, AUDIO_S16, 2, 4096);/打開音頻 80.
25、160; bgsound = Mix_LoadMUS("bgsound.mp3");/導入聲音文件 81. Mix_PlayMusic(bgsound, -1);/播放音頻 82. while (quit = 0) 83. 84.
26、0; while (SDL_PollEvent(&event) 85. 86. switch (event.type) 87.
27、60; 88. case SDL_QUIT: 89. Mix_CloseAudio();/關閉音頻
28、160; 90. quit = 1; 91. break; 92. &
29、#160; default: 93. break; 94. 95.
30、; 96. SDL_Delay(100); 97. 98. 99. return 0; 100. 問題:gcc main.c -o main編譯時可能會出現(xiàn)如下錯誤:1. ma
31、in.c:(.text+0x19): undefined reference to SDL_Init' 2. main.c:(.text+0x22): undefined reference to SDL_GetError' 3. main.c:(.text+0x50): undefined reference to SDL_Quit' 4. main.c:(.text+0x79):
32、160;undefined reference to SDL_SetVideoMode' 5. main.c:(.text+0x8c): undefined reference to SDL_GetError' 6. main.c:(.text+0xc7): undefined reference to SDL_WM_SetCaption' 7. main.c:(.text+0xd3):
33、;undefined reference to IMG_Load' 8. main.c:(.text+0x132): undefined reference to SDL_UpperBlit' 9. main.c:(.text+0x137): undefined reference to TTF_Init' 10. main.c:(.text+0x140): undefined reference to SDL_GetError' 11. main.c:(.text+0x174): undefined reference to TTF_OpenFont' 12. main.c:(.text+0x1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 二手房產買賣合同
- 2025年4個兄弟分家協(xié)議書模板
- 三年級上冊數(shù)學教案-8.1 分數(shù)的初步認識 ︳西師大版
- 2025年固始縣再就業(yè)小額擔保貸款協(xié)議
- 2025年廣東理工職業(yè)學院單招職業(yè)適應性測試題庫及答案一套
- 2025年河南機電職業(yè)學院單招職業(yè)傾向性測試題庫必考題
- 2025云南省建筑安全員-C證考試題庫
- 健身中心鏈家居間服務合同
- 2025年度中小企業(yè)擔保合同解除協(xié)議書
- 2025年度文化創(chuàng)意產品采購合同甲方責任與市場推廣
- 質量管理小組活動準則TCAQ10201-2020
- 扶梯人行道檢驗驗收作業(yè)指導書
- GB/T 41855-2022小型游樂設施轉椅
- 2023年蘇州衛(wèi)生職業(yè)技術學院高職單招(英語)試題庫含答案解析
- GB/T 20308-2020產品幾何技術規(guī)范(GPS)矩陣模型
- 男孩女孩動起來健康運動知識PPT模板
- 鐵路道岔知識課件
- 自考公共關系學課件
- 森林害蟲防治方法課件
- 各種el34名膽電子管評測
- 超分子化學-杯芳烴課件
評論
0/150
提交評論