版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項目總結(jié)使用v4l2視頻數(shù)據(jù)采集一、打開設(shè)備文件,和普通文件那樣打開即可二、捕捉視頻的前期準(zhǔn)備1、獲取參數(shù)和設(shè)置要求v4l2_capability結(jié)構(gòu)體通過VIDIO_QUERYCAP操作命令獲取設(shè)備驅(qū)動的參數(shù),保存于v4l2_capability結(jié)構(gòu)體中,包括driver(驅(qū)動名),card(設(shè)備名),bus_info(總線信息)等v4l2_cropcap結(jié)構(gòu)體先設(shè)置v4l2_cropcap的type域,再通過VIDIO_CROPCAP操作命令獲取設(shè)備捕捉能力的參數(shù),保存于v4l2_cropcap結(jié)構(gòu)體中,包括bounds(最大捕捉方框的左上角坐標(biāo)和寬高),def
2、rect(默認(rèn)捕捉方框的左上角坐標(biāo)和寬高)等v4l2_format結(jié)構(gòu)體先填好v4l2_format的各個域,如type(傳輸流類型),fmt.pix.width(寬),fmt.pix.heigth(高),fmt.pix.field(采樣區(qū)域,如隔行采樣),fmt.pix.pixelformat(采樣類型,如YUV4:2:2),然后通過VIDIO_S_FMT操作命令設(shè)置視頻捕捉格式2、初始化內(nèi)存映射v4l2_requestbuffers結(jié)構(gòu)體先填好v4l2_requestbuffers的一些域,如count(幀緩沖個數(shù))等,通過操作命令VIDIO_REQBUFS根據(jù)v4l2_requestbu
3、ffers的要求向內(nèi)核申請幀緩沖向內(nèi)存申請相對應(yīng)的映射空間,然后再使用mmap()系統(tǒng)調(diào)用實現(xiàn)內(nèi)核中的幀緩沖和內(nèi)存中映射空間相互映射v4l2_buffer結(jié)構(gòu)體由于在內(nèi)核中申請幀緩存和在內(nèi)存中申請映射空間不同,后者申請后返回首地址,以后可以通過該首地址向映射空間操作,而前者沒有,所以得要v4l2_buffer結(jié)構(gòu)體做中介。先填好v4l2_buffer結(jié)構(gòu)體的一些域,如index(幀號),type(傳輸流類型),然后通過操作命令VIDIO_QUERYBUF獲取相對應(yīng)于幀號的緩沖幀的信息,并保存于v4l2_buffer結(jié)構(gòu)體中三、捕捉視頻1、啟動攝像頭捕捉視頻v4l2_buf_type枚舉類型將其
4、設(shè)置為V4L2_BUF_TYPE_VIDIO_CAPTURE類型,然后使用VIDIOC_STREAMON操作命令根據(jù)v4l2_buf_type的值開始捕捉視頻2、不斷的讀取數(shù)據(jù)用select()系統(tǒng)調(diào)用輪詢文件描述符集合中的設(shè)備是否準(zhǔn)備好,如果準(zhǔn)備好,即只要從映射空間中讀取數(shù)據(jù)即可注意:在這兩個過程中,需要不斷地將已經(jīng)讀取完數(shù)據(jù)的緩沖幀出隊列,并插進(jìn)到隊列尾,以存儲攝像頭捕捉到的新數(shù)據(jù)3、停止攝像頭捕捉視頻和啟動攝像頭捕捉視頻類似,只是改用VIDIO_STREAMOFF操作命令罷了四、關(guān)閉設(shè)備文件,和普通文件那樣關(guān)閉即可背景:
5、0; 閱讀新聞基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項目總結(jié)SDL學(xué)習(xí)入門日期: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; 關(guān)于圖像的開發(fā)包 (3)sudo apt-get install libsdl-mixer1.2-dev 關(guān)于音頻的開發(fā)包 (4)sudo apt-get install libsdl-ttf2.0-dev 關(guān)于文字的開發(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);/注冊退出時調(diào)用的操作 29. 30. 31. /設(shè)置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. /設(shè)置SDL窗口標(biāo)題
15、; 40. SDL_WM_SetCaption("test", NULL); 41. 42. /*顯示圖像*/ 43. background = IMG_Load("background.jpg");/導(dǎo)入圖像文件,并將圖像放入文字容器 44.
16、160; srect.x = 0; 45. srect.y = 0; 46. srect.w = background->w; 47. srect.h = background->h; 48.
17、drect = srect;/設(shè)置截取范圍 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);/導(dǎo)入字體文件 60. color.r = 255; 61.
20、60; color.g = 0; 62. color.b = 0;/設(shè)置文字顏色 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;/設(shè)置截取范圍 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");/導(dǎo)入聲音文件 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();/關(guān)閉音頻
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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景區(qū)演藝活動合同(2篇)
- 兒童樂園裝修施工勞務(wù)協(xié)議
- 化工園區(qū)渣土運(yùn)輸協(xié)議
- 機(jī)場附近售樓部裝修合同
- 保齡球館裝修終止協(xié)議模板
- 親子兒童書店裝修協(xié)議
- 家電維修配件配送協(xié)議樣本
- 建材物流配送服務(wù)合同
- 2024年三門峽客運(yùn)資格證考試內(nèi)客
- 保險企業(yè)辦公改造合同
- 復(fù)興號動車組司機(jī)操作及整備課件-CR400AF動車組簡介
- 海綿城市建設(shè)教育課件
- 2024年青海三新農(nóng)電有限責(zé)任公司招聘筆試參考題庫含答案解析
- 干細(xì)胞商業(yè)計劃書
- 三 《聯(lián)系生活實際 弘揚(yáng)工匠精神》(教學(xué)設(shè)計)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- 直飲水設(shè)計方案
- 班級公約大家定
- 腹部損傷課件
- 北師大版數(shù)學(xué)三年級上冊《植樹》說課稿
- 三明醫(yī)改績效工資方案(5篇)
- 混凝土冬季施工熱工計算表
評論
0/150
提交評論