亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1931 | 回復(fù): 0
打印 上一主題 下一主題

ARM開發(fā)板上USB 攝像頭圖像采集實(shí)現(xiàn) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-06-30 11:27 |只看該作者 |倒序?yàn)g覽
開發(fā)板上的arm是AT91RM9200,攝像頭選用的是網(wǎng)眼的pc350,主控芯片是ov511+。系統(tǒng)內(nèi)核是2.4,宿主機(jī)是fedora core 6,交叉編譯器是2.95.3。就是這些家底了,:-)。

一 驅(qū)動(dòng)加載
   
    ov511的驅(qū)動(dòng),2.4的內(nèi)核中就有,所以我們只需重新編譯內(nèi)核,將下邊的選項(xiàng)都選上,然后重新燒寫內(nèi)核就可以了。:-),也就是直接靜態(tài)加載,我喜歡一勞永逸,:-),試驗(yàn)階段還是動(dòng)態(tài)的好。
(1)在arm linux的kernel目錄下make menuconfig。
(2)首先(*)選擇Multimedia device->下的Video for linux。加載video4linux模塊,為視頻采集設(shè)備提供編程接口;
(3)然后在usb support->目錄下(*)選擇support for usb和usb camera ov511 support。這使得在內(nèi)核中加入了對采用OV511接口芯片的USB數(shù)字?jǐn)z像頭的驅(qū)動(dòng)支持。
(4)保存配置退出。
(5)make dep;make zImage就生成了帶有ov511 驅(qū)動(dòng)的內(nèi)核。
接下來就通過uboot將內(nèi)核燒到flash里去。這時(shí)你將攝像頭插上,系統(tǒng)就會(huì)提示發(fā)現(xiàn)攝像頭-ov511+,這說明驅(qū)動(dòng)正常。:-),驅(qū)動(dòng)加載就成功了,下一步就是圖像采集了。

二 圖像獲取

   關(guān)于圖像采集,我用的是一個(gè)開源軟件,就是德國人做的抓圖程序:vgrabbj。

[color="#000000"]http://vgrabbj.gecius.de/
第一步當(dāng)然就是down下來,然后交叉編譯了,可是不幸的是我們的編譯器就是那個(gè)偉大的2.95.3里東東不夠多,缺少一些庫文件了(zlib,jpge,png)。所以我們首先要充實(shí)一下自己的家底,交叉編譯這三個(gè)庫文件了。
1.首先安裝 zlib 庫,這個(gè)是后面的庫的編譯基礎(chǔ)。這個(gè)是下載地址:
[color="#282828"]http://www.zlib.net/zlib-1.2.3.tar.gz
  
400多K,去下載吧。
解壓 # tar -zxvf zlib-1.2.3.tar.gz
進(jìn)入zlib-1.2.3目錄下
#cd zlib-1.2.3
配置,由于 zlib 庫的configure 腳本不支持交叉編譯選項(xiàng),所以我們首先設(shè)置CC
# export CC=arm-linux-gcc
#  ./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --shared  
注 意:prefix就是安裝目錄,這里配置指向 /usr/local/arm/2.95.3/arm-linux/ 目錄,就會(huì)自動(dòng)安裝在
/usr/local/arm/2.95.3/arm-linux/ [include,lib]
目錄下,千萬不要裝錯(cuò)目錄了,不然后面會(huì)找不到這個(gè)庫的
#  make
# make install
安裝完后檢查一下目錄 /usr/local/arm/2.95.3/arm-linux/
[include,lib] ,假如 include 中沒有 zlib.h 之類的頭文件,lib 中沒有 libz.so.1.2.3
,那就自己手動(dòng)拷到這些目錄下去,記著拷的時(shí)候把所有的 *.h 都需要拷過去,在拷庫的時(shí)候用 cp –a libz.* /…./lib
就行,要用上 –a 選項(xiàng)。這樣zlib就搞定了。
2.安裝 png 庫,這個(gè)是用來顯示 png 圖形的,下載地址:
[color="#282828"]http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.0.10rc1.tar.gz


# tar zxf libpng-1.0.10rc1.tar.gz
# cd libpng-1.0.10rc1
Libpng 不提供有效的 configure 腳本,所以只好自己動(dòng)手改 Makefile 文件了
# cp scripts/makefile.linux  Makefile   //把 Scripts下的一個(gè) makefile 拷出來自己動(dòng)手改
# vi Makefile    // 自己動(dòng)手改
CC=arm-linux-gcc    //修改這里
# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
prefix=/usr/local/arm/2.95.3/arm-linux     //修改這里
# Where the zlib library and include files are located
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/usr/local/arm/2.95.3/arm-linux/lib   //修改這里
ZLIBINC=/usr/local/arm/2.95.3/arm-linux/include   //修改這里
好了,保存,然后去編譯吧
#  make
#  make install
如果有錯(cuò)誤,檢查你前面的步驟哪個(gè)沒做對 ,:-) 尤其是 zlib 的安裝
還是前面說的,檢查 /usr/local/arm/2.95.3/arm-linux/ [include,lib] 目錄中有成功安裝否,如果沒有安裝成功,那就自己把編譯出來的東西拷過去。記著,*.h 和 .so 的文件都要拷。

3.安裝 jpeg 庫 ,下載地址:
[color="#282828"]ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
   
# tar -zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --help    //可以查看它的配置選項(xiàng)
# export CC=arm-linux-gcc
# ./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --enable-shared --enable-static
然后我們需要修改一下makefile文件,因?yàn)槲业南到y(tǒng)的libtool好像和這個(gè)版本配合的不是很好。下邊這些地方是需要注意的,:-),尤其是libtool,如果你的也工作不好的話。
# Where to install the programs and man pages.
prefix = /usr/local/arm/2.95.3/arm-linux
# The name of your C compiler:
CC= arm-linux-gcc
# If using GNU libtool, LIBTOOL references it; if not, LIBTOOL is empty.
LIBTOOL =
# $(O) expands to "lo" if using libtool, plain "o" if not.
# Similarly, $(A) expands to "la" or "a".
O = o
A = a
# library (.a) file creation command
AR= arm-linux-ar rc
# second step in .a creation (use "touch" if not needed)
AR2= arm-linux-ranlib
# make
安裝前需要在 arm-linux 下建個(gè)目錄,不然安裝會(huì)出錯(cuò)
# mkdir –p /usr/local/arm/2.95.3/arm-linux/man/man1
# make install    // OK 了
一樣,自己去檢查一下安裝是否成功,:-),庫文件終于告一段落了。下邊到我們的主角了,vgrabbj。

4.交叉編譯vgrabbj
# tar -zxvf vgrabbj-0.9.6.tar.gz
# cd vgrabbj-0.9.6
# ./configure --help
#export CC=arm-linux-gcc
#mkdir myvgr
#./configure --host=arm-linux --prefix=./myvgr --disable-ftp --disable-timestamp
去掉不需要的選項(xiàng)吧,多了不一定可以的,:-)。
修改makefile
#vim Makefile
CFLAGS = -g -O2 -Wall -I/home/linux-2.4/include
添加斜體部分,:-)。
[root@localhost vgrabbj-0.9.6]# make
[root@localhost vgrabbj-0.9.6]# make install
好了,這樣你就在myvgr中有了一個(gè)vgrabbj可執(zhí)行文件,把它下到開發(fā)板上就可以采集圖像了。

5.vgrabbj的使用
vgrabbj需要兩個(gè)動(dòng)態(tài)庫文件,所以首先拷貝到開發(fā)板上,:-)。如下:
[root@(none) lib]$cp -a libpng.so.2 /lib
[root@(none) lib]$cp -a libpng.so.2.1.0.10rc1  /lib
[root@(none) lib]$cd myvgr
[root@(none) myvgr]$ls
bin  etc  lib  man
[root@(none) myvgr]$cd bin
[root@(none) bin]$ls
vgrabbj
[root@(none) bin]$./vgrabbj --help
Usage: vgrabbj [options]
-h                 This screen
-c       parse  as config file
-l        Daemonize & sleep  (min. 1!) between images
-L  Daemonize & sleep  between images               
-a                 Switch vgrabbj's auto brightness adjustment (default: off)   
                    You might need to set -F 4, too, if it doesn't work           
-q        Quality setting (0-100, default: 75), JPEG only               
-i                             
Sets the imagesize of input device to
sqcif=128x96,qsif=160x120,qcif=176x144,
sif=320x240, cif=352x288, vga=640x480, svga=800x600, xga=1024x768,
sxga=1280x1024, or uxga=1600x1200
(default:352x288)                           
-o  Output format (default:jpg)                                 
-f       Write to  (default: /dev/stdout)                    
-d         Read from  as input (default: /dev/video)            
                                                                              
Example: vgrabbj -l 5 -f /usr/local/image.jpg                                    
          Would write a single jpeg-image to image.jpg approx. every five seconds
                                                                                
[root@(none) bin]$./vgrabbj -f ./1.jpg -d /dev/v4l/video0                        
Could not open configfile ./myvgr/etc/vgrabbj.conf, ignoring                     
Reading image from /dev/v4l/video0                                               
[root@(none) bin]$./vgrabbj -f ./2.jpg -d /dev/v4l/video0                        
Could not open configfile ./myvgr/etc/vgrabbj.conf, ignoring                     
Reading image from /dev/v4l/video0
你把1.jpg,2.jpg拷到宿主機(jī)上,就可以看到自己的勞動(dòng)成果了,:-)。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/92689/showart_1981554.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP