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

正文內(nèi)容

基于cmos圖像傳感器的嵌入式圖像采集處理系統(tǒng)-在線瀏覽

2024-09-20 16:00本頁面
  

【正文】 stop bit時序 write mode時序 read mode時序由于S3C2440并未提供MT9M001的兩線串行協(xié)議的接口,我們只能采用以I/O模擬的方式來實現(xiàn)。writeBus上寫入0xBABus上寫入0xBBread 讀/寫模式 開始 寫入0xBB 16bit數(shù)據(jù) 寫入寄存器地址 寫入寄存器地址 結(jié)束 兩線串行協(xié)議程序流程圖 V4L(videoforlinux)驅(qū)動在Linux系統(tǒng)中,設(shè)備驅(qū)動對各種不同的設(shè)備提供了統(tǒng)一的訪問接口,把設(shè)備映射為一類特殊的設(shè)備文件。系統(tǒng)調(diào)用的是內(nèi)核與應(yīng)用程序之間的接口,而設(shè)備驅(qū)動則是內(nèi)核和外設(shè)之間的接口。videoforlinux是Linux系統(tǒng)中為視頻用戶程序提供的一套統(tǒng)一的API,用戶通過系統(tǒng)調(diào)用即可操作不同的視頻設(shè)備。在驅(qū)動程序設(shè)計中重要的部分有:(1)初始化和釋放函數(shù)(2)I/O操作函數(shù)(3)數(shù)據(jù)傳輸函數(shù) camera的初始化和釋放在初始化函數(shù)中要完成的工作包括:配置camera接口的IO引腳、配置camera接口提供給CMOS芯片的外接時鐘源、配置camera的主要寄存器、初始化內(nèi)核信號量和自旋鎖、注冊設(shè)備文件、分配DMA內(nèi)存、注冊中斷函數(shù)等工作。video_register_device(amp。在注冊設(shè)備文件之前,應(yīng)該先將系統(tǒng)調(diào)用和設(shè)備驅(qū)動程序關(guān)聯(lián)起來,就需要使用到static struct file_operations這個關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)。攝像頭file_operations的數(shù)據(jù)結(jié)構(gòu)如下: static struct file_operations cam_ops={ .open=v4l_cam_open, .release=v4l_cam_release, .read=v4l_cam_read, .ioctl=v4l_cam_ioctl, .poll=v4l_cam_poll, .mmap=v4l_cam_mmap,}。在硬件系統(tǒng)中DMA操作使用的是物理地址,但是在Linux系統(tǒng)中使用的是虛擬地址,如果我們想要用DMA對一段內(nèi)存進行操作,我們必須將一段內(nèi)存的物理地址和虛擬地址的映射,而dma_alloc_coherent函數(shù)實現(xiàn)了這種機制。(3)在完成了DMA的分配后,即可注冊中斷函數(shù)。根據(jù)中斷函數(shù)設(shè)計的原理,應(yīng)使中斷函數(shù)快速返回。在中斷函數(shù)中只需要完成清除中斷置位、數(shù)據(jù)標(biāo)志位置位和根據(jù)情況喚醒工作隊列中休眠的線程。在此不再贅述。Video4linux支持的數(shù)據(jù)結(jié)構(gòu)及其用途:(1)video_capability包含設(shè)備的基本信息(設(shè)備名稱、支持的最大最小分辨率、信號源信息等)。(3)video_window包含關(guān)于capture area的信息。(5)video_buffer最底層對buffer的描述。除了V4L給我們提供的這些數(shù)據(jù)結(jié)構(gòu)和IO命令,我們也可以在這個結(jié)構(gòu)下用_IOW宏定義自己的命令和結(jié)構(gòu)來完成對硬件設(shè)備的操作。在linux下為了實現(xiàn)數(shù)據(jù)的從內(nèi)核層到用戶層的傳遞,可以使用的方法有兩種:(1)通過使用驅(qū)動中提供的read函數(shù)由copy_to_user函數(shù)將內(nèi)核中的數(shù)據(jù)傳遞到用戶層(2)也可以通過mmap模式讀取數(shù)據(jù),即用戶空間的一段內(nèi)存與設(shè)備內(nèi)存關(guān)聯(lián)起來,用戶層可以直接操作里面的數(shù)據(jù),不必再經(jīng)過linux操作系統(tǒng)來讀取數(shù)據(jù)。在我們的系統(tǒng)中通remap_pfn_range(struct vm_area_struct*vm,unsigned long virt_addr,unsigned long pfn,unsigned long size,pgprot_t prot)。virt_addr:重新映射時的起始用戶虛擬地址。pfn:與物理內(nèi)存對應(yīng)的頁幀號,虛擬內(nèi)存將要被映射到該物理內(nèi)存上。prot:新VMA要求的保護屬性。 開始 打開視頻設(shè)備 獲取攝像頭信息 內(nèi)存映射初始化采集窗口幀狀態(tài) 捕獲數(shù)據(jù) 是否終止采集處理采集到的數(shù)據(jù) 關(guān)閉視頻設(shè)備 Y N 視頻采集算法示意圖 編譯完成后的V4L驅(qū)動 在用戶層中我們將由驅(qū)動采集到的數(shù)據(jù)進行轉(zhuǎn)換和處理,進而得到我們想要的結(jié)果。由于采用的攝像頭芯片MT9M001是只輸出灰度圖像的CMOS芯片,所以在本系統(tǒng)下的用戶程序不需要再做一次由彩色空間到灰度空間的轉(zhuǎn)換,即可處理采集到的數(shù)據(jù)。必須對這些降質(zhì)的圖像進行改善處理。在系統(tǒng)中圖像預(yù)處理的主要步驟是:(1)圖像二值化(2)中值濾波。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。: (1)首先解壓文件:tar jxvf (2)OpenCV庫配置: ./configure host=armlinux withoutgtk withoutcarbon withoutquicktime without1394libs withoutffmpeg withoutpython withoutswig enablestatic disableshared disableapps CXXFLAGS=armlinuxg++ CPPFLAGS=I/usr/include CXXFLAGS=O2host=armlinux :指出交叉編譯arm平臺withoutgtk:忽略gtk+ windowswithoutcarbon: 不使用Mac OS上的X庫withoutquicktimewithout1394libswithoutffmpegwithoutpythonwithoutswigenablestatic :生成靜態(tài)庫disableshared:不生成動態(tài)庫prefix=/usr/local/opencv :指定文件安裝路徑execperfix=/usr/local/opencv :當(dāng)前未知CXXFLAGS=O2 :對編譯進行優(yōu)化//在編譯時,盡量用O2進行優(yōu)化,否則容易出問題,如果沒有用,則自己對makefile文件,進行修改,將其優(yōu)化選項改為O2。 一幅圖像包括目
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1