版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項(xiàng)目總結(jié)使用v4l2視頻數(shù)據(jù)采集一、打開設(shè)備文件,和普通文件那樣打開即可二、捕捉視頻的前期準(zhǔn)備1、獲取參數(shù)和設(shè)置要求v4l2_capability結(jié)構(gòu)體通過(guò)VIDIO_QUERYCAP操作命令獲取設(shè)備驅(qū)動(dòng)的參數(shù),保存于v4l2_capability結(jié)構(gòu)體中,包括driver(驅(qū)動(dòng)名),card(設(shè)備名),bus_info(總線信息)等v4l2_cropcap結(jié)構(gòu)體先設(shè)置v4l2_cropcap的type域,再通過(guò)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的各個(gè)域,如type(傳輸流類型),fmt.pix.width(寬),fmt.pix.heigth(高),fmt.pix.field(采樣區(qū)域,如隔行采樣),fmt.pix.pixelformat(采樣類型,如YUV4:2:2),然后通過(guò)VIDIO_S_FMT操作命令設(shè)置視頻捕捉格式2、初始化內(nèi)存映射v4l2_requestbuffers結(jié)構(gòu)體先填好v4l2_requestbuffers的一些域,如count(幀緩沖個(gè)數(shù))等,通過(guò)操作命令VIDIO_REQBUFS根據(jù)v4l2_requestbu
3、ffers的要求向內(nèi)核申請(qǐng)幀緩沖向內(nèi)存申請(qǐng)相對(duì)應(yīng)的映射空間,然后再使用mmap()系統(tǒng)調(diào)用實(shí)現(xiàn)內(nèi)核中的幀緩沖和內(nèi)存中映射空間相互映射v4l2_buffer結(jié)構(gòu)體由于在內(nèi)核中申請(qǐng)幀緩存和在內(nèi)存中申請(qǐng)映射空間不同,后者申請(qǐng)后返回首地址,以后可以通過(guò)該首地址向映射空間操作,而前者沒有,所以得要v4l2_buffer結(jié)構(gòu)體做中介。先填好v4l2_buffer結(jié)構(gòu)體的一些域,如index(幀號(hào)),type(傳輸流類型),然后通過(guò)操作命令VIDIO_QUERYBUF獲取相對(duì)應(yīng)于幀號(hào)的緩沖幀的信息,并保存于v4l2_buffer結(jié)構(gòu)體中三、捕捉視頻1、啟動(dòng)攝像頭捕捉視頻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ù)即可注意:在這兩個(gè)過(guò)程中,需要不斷地將已經(jīng)讀取完數(shù)據(jù)的緩沖幀出隊(duì)列,并插進(jìn)到隊(duì)列尾,以存儲(chǔ)攝像頭捕捉到的新數(shù)據(jù)3、停止攝像頭捕捉視頻和啟動(dòng)攝像頭捕捉視頻類似,只是改用VIDIO_STREAMOFF操作命令罷了四、關(guān)閉設(shè)備文件,和普通文件那樣關(guān)閉即可背景:
5、0; 閱讀新聞基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項(xiàng)目總結(jié)SDL學(xué)習(xí)入門日期:2012-07-14來(lái)源:Linux社區(qū) 作者:xuyuanfan77字體:大 中 小1、搭建開發(fā)平臺(tái) (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ā)包 安裝好以上四個(gè)開發(fā)包,開發(fā)平臺(tái)算是搭建好了
7、0; 2、最有代表性的簡(jiǎn)單程序,包括圖像,文字,音樂(lè),注釋如下: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);/注冊(cè)退出時(shí)調(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. 問(wèn)題:gcc main.c -o main編譯時(shí)可能會(huì)出現(xiàn)如下錯(cuò)誤: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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025招標(biāo)控制價(jià)建設(shè)工程造價(jià)咨詢合同
- 2025儀器儀表購(gòu)銷合同
- 2024年刮泥機(jī)項(xiàng)目投資申請(qǐng)報(bào)告
- 醫(yī)療健康產(chǎn)業(yè)對(duì)宏觀經(jīng)濟(jì)的拉動(dòng)作用研究
- 2025年滬教版必修3生物上冊(cè)階段測(cè)試試卷含答案
- 2025年粵人版選擇性必修3地理下冊(cè)月考試卷
- 2024年滬教新版必修1物理上冊(cè)月考試卷
- 二零二五版牛只運(yùn)輸與養(yǎng)殖基地環(huán)保責(zé)任合同3篇
- 二零二五年度模具加工環(huán)保工藝與技術(shù)改造合同4篇
- 二零二五年度園林綠化苗木育種合同3篇
- 開展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國(guó)洗衣液市場(chǎng)未來(lái)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動(dòng)力學(xué)課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測(cè)試與裝調(diào)》電子教案
- 客戶分級(jí)管理(標(biāo)準(zhǔn)版)課件
- GB/T 32399-2024信息技術(shù)云計(jì)算參考架構(gòu)
- 人教版數(shù)學(xué)七年級(jí)下冊(cè)數(shù)據(jù)的收集整理與描述小結(jié)
評(píng)論
0/150
提交評(píng)論