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

正文內(nèi)容

基于cmos圖像傳感器的嵌入式圖像采集處理系統(tǒng)(編輯修改稿)

2024-09-06 16:00 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 l, .mmap=v4l_cam_mmap,}。(2)在完成注冊(cè)設(shè)備文件之后,即可分配用于存放圖像數(shù)據(jù)的DMA通道。在硬件系統(tǒng)中DMA操作使用的是物理地址,但是在Linux系統(tǒng)中使用的是虛擬地址,如果我們想要用DMA對(duì)一段內(nèi)存進(jìn)行操作,我們必須將一段內(nèi)存的物理地址和虛擬地址的映射,而dma_alloc_coherent函數(shù)實(shí)現(xiàn)了這種機(jī)制。調(diào)用函數(shù)之后將會(huì)將所指定的物理地址映射為linux下虛擬地址供程序使用。(3)在完成了DMA的分配后,即可注冊(cè)中斷函數(shù)。由于camera需要傳輸大量的數(shù)據(jù),將會(huì)消耗大量的時(shí)間。根據(jù)中斷函數(shù)設(shè)計(jì)的原理,應(yīng)使中斷函數(shù)快速返回。為了達(dá)到這個(gè)目的在中斷函數(shù)中我們使用了linux內(nèi)核中的工作隊(duì)列機(jī)制(work queue)。在中斷函數(shù)中只需要完成清除中斷置位、數(shù)據(jù)標(biāo)志位置位和根據(jù)情況喚醒工作隊(duì)列中休眠的線程。在驅(qū)動(dòng)程序的釋放函數(shù)中完成的工作既是初始化函數(shù)中工作的逆過(guò)程,即注銷設(shè)備文件,釋放DMA和中斷。在此不再贅述。 I/O操作函數(shù)在V4L下提供一組ioctl函數(shù)來(lái)完成用戶程序?qū)τ跀z像頭設(shè)備的行為控制。Video4linux支持的數(shù)據(jù)結(jié)構(gòu)及其用途:(1)video_capability包含設(shè)備的基本信息(設(shè)備名稱、支持的最大最小分辨率、信號(hào)源信息等)。(2)video_channel關(guān)于各個(gè)信號(hào)源的屬性。(3)video_window包含關(guān)于capture area的信息。(4)video_mbuf利用mmap進(jìn)行映射的幀的信息。(5)video_buffer最底層對(duì)buffer的描述。(6)video_mmap用于mmap模式下。除了V4L給我們提供的這些數(shù)據(jù)結(jié)構(gòu)和IO命令,我們也可以在這個(gè)結(jié)構(gòu)下用_IOW宏定義自己的命令和結(jié)構(gòu)來(lái)完成對(duì)硬件設(shè)備的操作。系統(tǒng)中最關(guān)鍵的步驟便是回傳已經(jīng)由攝像頭芯片采集到的數(shù)據(jù)到DMA內(nèi)存中。在linux下為了實(shí)現(xiàn)數(shù)據(jù)的從內(nèi)核層到用戶層的傳遞,可以使用的方法有兩種:(1)通過(guò)使用驅(qū)動(dòng)中提供的read函數(shù)由copy_to_user函數(shù)將內(nèi)核中的數(shù)據(jù)傳遞到用戶層(2)也可以通過(guò)mmap模式讀取數(shù)據(jù),即用戶空間的一段內(nèi)存與設(shè)備內(nèi)存關(guān)聯(lián)起來(lái),用戶層可以直接操作里面的數(shù)據(jù),不必再經(jīng)過(guò)linux操作系統(tǒng)來(lái)讀取數(shù)據(jù)。在傳輸類似于攝像數(shù)據(jù)這樣的大量的數(shù)據(jù)的情況下選擇mmap模式來(lái)讀取數(shù)據(jù)無(wú)疑能大大的降低讀取數(shù)據(jù)而消耗的時(shí)間,提高系統(tǒng)的效率。在我們的系統(tǒng)中通remap_pfn_range(struct vm_area_struct*vm,unsigned long virt_addr,unsigned long pfn,unsigned long size,pgprot_t prot)。(vma:虛擬內(nèi)存區(qū)域,在一定范圍內(nèi)的頁(yè)將被映射到該區(qū)域內(nèi)。virt_addr:重新映射時(shí)的起始用戶虛擬地址。該函數(shù)為處于virt_addr和virt_addr+size之間的虛擬地址建立頁(yè)表。pfn:與物理內(nèi)存對(duì)應(yīng)的頁(yè)幀號(hào),虛擬內(nèi)存將要被映射到該物理內(nèi)存上。size:以字節(jié)為單位,被重新映射的區(qū)域大小。prot:新VMA要求的保護(hù)屬性。)函數(shù)建立起映射。 開始 打開視頻設(shè)備 獲取攝像頭信息 內(nèi)存映射初始化采集窗口幀狀態(tài) 捕獲數(shù)據(jù) 是否終止采集處理采集到的數(shù)據(jù) 關(guān)閉視頻設(shè)備 Y N 視頻采集算法示意圖 編譯完成后的V4L驅(qū)動(dòng) 在用戶層中我們將由驅(qū)動(dòng)采集到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和處理,進(jìn)而得到我們想要的結(jié)果。在數(shù)字圖像處理的工作中,常常需要將彩色圖像轉(zhuǎn)換成灰度圖片來(lái)進(jìn)行處理,這樣做目的在于減少計(jì)算量和程序運(yùn)行時(shí)的開銷。由于采用的攝像頭芯片MT9M001是只輸出灰度圖像的CMOS芯片,所以在本系統(tǒng)下的用戶程序不需要再做一次由彩色空間到灰度空間的轉(zhuǎn)換,即可處理采集到的數(shù)據(jù)。 采集到的圖像效果320240 采集失敗的圖像 一般情況下,采集到的圖像的轉(zhuǎn)換和傳送過(guò)程總會(huì)要造成圖像的某些降質(zhì),例如在攝像時(shí),光學(xué)系統(tǒng)的失真、相對(duì)運(yùn)動(dòng)、大氣流動(dòng)等都會(huì)使圖像模糊;在傳輸過(guò)程中,由于噪聲的污染,圖像質(zhì)量會(huì)有所下降。必須對(duì)這些降質(zhì)的圖像進(jìn)行改善處理。其次在采集到的圖像中一般包含多個(gè)目標(biāo)區(qū)域,需要由圖像分割技術(shù)將圖像分割成互相不交疊的有意義的區(qū)域以便進(jìn)一步的處理、分析和應(yīng)用。在系統(tǒng)中圖像預(yù)處理的主要步驟是:(1)圖像二值化(2)中值濾波。 opencv庫(kù)的交叉編譯與移植OpenCV是Intel源計(jì)算機(jī)視覺庫(kù)[8]。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。由于opencv庫(kù)是由C/C++編寫的庫(kù),可以方便的在嵌入式linux上實(shí)現(xiàn)移植。: (1)首先解壓文件:tar jxvf (2)OpenCV庫(kù)配置: ./configure host=armlinux withoutgtk withoutcarbon withoutquicktime without1394libs withoutffmpeg withoutpython withoutswig enablestatic disableshared disableapps CXXFLAGS=armlinuxg++ CPPFLAGS=I/usr/include CXXFLAGS=O2host=armlinux :指出交叉編譯arm平臺(tái)withoutgtk:忽略gtk+ windowswithoutcarbon: 不使用Mac OS上的X庫(kù)withoutquicktimewithout1394libswithoutffmpegwithoutpythonwithoutswigenablestatic :生成靜態(tài)庫(kù)disableshared:不生成動(dòng)態(tài)庫(kù)prefix=/usr/local/opencv :指定文件安裝路徑execperfix=/usr/local/opencv :當(dāng)前未知CXXFLAGS=O2 :對(duì)編譯進(jìn)行優(yōu)化//在編譯時(shí),盡量用O2進(jìn)行優(yōu)化,否則容易出問(wèn)題,如果沒(méi)有用,則自己對(duì)makefile文件,進(jìn)行修改,將其優(yōu)化選項(xiàng)改為O2。 (3)make install之后編譯成功將生成的lib后綴的文件通過(guò)nfs文件系統(tǒng)下載到嵌入式中。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1