導航:首頁 > 編程系統 > linux攝像頭識別

linux攝像頭識別

發布時間:2023-06-10 19:14:15

linux系統9.04版的攝像頭驅動在哪裡可以免費下載

在Ubuntu里使用攝像頭
Ubuntu8.04以上版本自帶的驅動已經能夠識別大多數攝像頭,然而兼容性並不好,很多隻能被Ekiga識別,而無法使用skype進行視頻聊天。我們需要進行一些安裝和調試工作來讓攝像頭更好的工作。

首先,查看當前的usb口連接情況:

$ lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 005: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam
Bus 002 Device 003: ID 046d:c01f Logitech, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

從這些信息我們可以看出攝像頭的Vendor_id=0ac8,Proct_id=301b;還可以看出圖形界面已經使用的usb埠的情況及攝像頭晶元的製造商Z-Star Microelectronics Corp.說明我們的攝像頭已經被系統所識別,下面讓我們開始吧:

1. 下載gspcav1-20071224.tar.gz並解壓
$ wget -c http://www.slackware.com/~alien/ ... av1-20071224.tar.gz
$ tar zxvf gspcav1-20071224.tar.gz

2. 編譯並安裝驅動
$ cd gspcav1-20071224
$ make clean
$ make
$ sudo make install

3. 編輯模塊載入選項文件
$ sudo gedit /etc/modprobe.d/options

為這個驅動添加一個選項(在最後添加一行)
options gspca force_rgb=1

4. 安裝攝像頭軟體Cheese
$ sudo apt-get install cheese

啟動cheese測試攝像頭,如果不能得到圖像:
$ lsmod|grep gspca
gspca 643920 0
videodev 29440 2 gspca,zc0301
usbcore 146028 6 gspca,zc0301,usbhid,ehci_hcd,uhci_hcd

刪除zc0301模塊
$ sudo modprobe -r zc0301

添加gspca模塊
$ sudo modprobe gspca

檢查一下:
$ lsmod |grep gspca
gspca 643920 0
videodev 29440 1 gspca
usbcore 146028 5 gspca,usbhid,ehci_hcd,uhci_hcd

再保險一點:
$ lsmod |grep videodev
videodev 29440 1 gspca
v4l1_compat 15492 1 videodev
v4l2_common 18304 1 videodev

一般這個時候cheese就可以獲取到圖像了,如果還不可以:
$ ls -l /dev/video0
crw-rw----+ 1 root video 81, 0 2008-05-16 23:48 /dev/video0

修改許可權
$ sudo chmod 777 /dev/video0
crwxrwxrwx+ 1 root video 81, 0 2008-05-16 23:48 /dev/video0

其實還有一個更簡單的方法,可以用終端
$ sudo apt-get install gspca-source

最後,提醒的是,開啟桌面特效會導致視頻畫面停頓,我在官方的Bug提交論壇上看到了這個,應該能確定是個Bug,所以要想用攝像頭的時候,暫時就別那麼炫了吧

⑵ linux下有什麼軟體能測試攝像頭

很多很多,GNOME桌面攝像頭工具Cheese,一體化安全監控解決方案ZoneMinder,支持動作檢測的視頻捕捉工具Motion,GNOME桌面下的開源VoIP和視頻會議應用程序Ekiga等。

⑶ 怎麼在linux下驅動usb攝像頭

建議你還是在windows下玩 攝像頭

我之前試過一次 ubuntu 安裝一個攝像頭程序 就直接好了

不用我裝驅動版

如果權運氣不好 恰巧不支持你的攝像頭的話 你可以去攝像頭的廠商官網下載 如果他們支持linux的話

國內廠商 一般都沒~~
最後說句 linux里 攝像頭的效果 比 win差好多

⑷ linux的瀏覽器無法查看攝像頭

這種情況則主要出現在系統或者軟體設置方面,比如QQ視頻攝像頭被佔用就很容易出現這種情況。
首先確保自己並沒有打開本地攝像頭XP系統在我的電腦里可以打開,Win7系統相對麻煩些,打開開始菜單,右鍵「計算機」選擇「管理」。
網路攝像頭簡稱WEBCAM,英文全稱為WEBCAMERA,是一種結合傳統攝像機與網路技術所產生的新一代攝像機,只要標準的網路瀏覽器(如MicrosoftIE或Netscape),即可監視其影像。

⑸ linux下接hub攝像頭驅動的問題……

我對linux這個操作系統不是太了解 這還要分析一下你這個情況 作為一個參考吧
你先檢查一下安裝的驅動是否符合當前你的設備等等(有點像廢話)

看這句話的大概意思
cat dev/video0返回cat:讀取錯誤:輸入/輸出錯誤
dmesg返回:
[ 287.240000] -1 - 1.1:新設備的使用number 5 using ehci-platform(ehci-platform全速5號)這個我不懂啊這個字典翻譯的 (應該是設備名字吧)
[ 287.350000] gspca_main:zc3xx-2.14.0探測0ac8:301b
[ 288.610000]輸入:zc3xx /設備/平台/ ehci-platform / usb1/1 - 1 /1-1.1/input/input1(應該是指哪個設備)
[ 339.990000] gspca_main:沒有傳輸端點發現
有一些人也出現這個情況 你可以去官方去看看 有沒有發布希么BUG或者補丁之類的東西
不一定要採納 因為我不是太懂這個 指給你個參考
希望這個能幫你 坐等追問

⑹ 如何利用Video4Linux獲取攝像頭數據

1. 攝像頭的安裝

在Linux下常用的攝像頭驅動是spca5xx。這個網站還給出了這款驅動支持的攝像頭的種類。另外,ov511晶元直接就支持Linux,使用者款晶元的攝像頭有網眼V2000。我使用的是網眼V2000的攝像頭,和Z-Star
301p+現代7131R晶元的攝像頭。後一種需要spca5xx的驅動。關於spca5xx的安裝方法,網上有很多介紹,這里就不說了。

2. 攝像頭的調試

安裝好攝像頭後,為了測試攝像頭能否正常工作,可以用一下軟體。比較著名的是xawtv,在網上搜以下可以下載到。安裝好後,打開xawtv則可以調試攝像頭。

3. Video4Linux 編程獲取數據

現有的video4linux有兩個版本,v4l和v4l2。本文主要是關於v4l的編程。利用v4l API獲取視頻圖像一般有以下幾步:

a> 打開設備

b> 設置設備的屬性,比如圖像的亮度,對比度等等

c> 設定傳輸格式和傳輸方式

d> 開始傳輸數據,一般是一個循環,用以連續的傳輸數據

e> 關閉設備

下面具體介紹v4l編程的過程。首先指出,在video4linux編程時要包含頭文件,其中包含了video4linux的數據結構和函數定義。

1)v4l的數據結構

在video4linux API中定義了如下數據結構,詳細的數據結構定義可以參考v4l API的文檔,這里就編程中經常使用的數據結構作出說明。

首先我們定義一個描述設備的數據結構,它包含了v4l中定義的所有數據結構:
typedef struct
_v4ldevice
{int fd;//設備號
struct video_capability capability;
struct
video_channel channel[10];
struct video_picture picture;
struct video_clip
clip;
struct video_window window;
struct video_capture capture;
struct
video_buffer buffer;
struct video_mmap mmap;
struct video_mbuf
mbuf;
struct video_unit unit;
unsigned char
*map;//mmap方式獲取數據時,數據的首地址
pthread_mutex_t mutex;
int frame;
int
framestat[2];
int overlay;
}v4ldevice;
下面解釋上面這個數據結構中包含的數據結構,這些結構的定義都在中。
* struct
video_capability
name[32] Canonical name for this interface
type Type of
interface
channels Number of radio/tv channels if appropriate
audios
Number of audio devices if appropriate
maxwidth Maximum capture width in
pixels
maxheight Maximum capture height in pixels
minwidth Minimum capture
width in pixels
minheight Minimum capture height in pixels

這一個數據結構是包含了攝像頭的屬性,name是攝像頭的名字,maxwidth maxheight是攝像頭所能獲取的最大圖像大小,用像素作單位。

在程序中,通過ioctl函數的VIDIOCGCAP控制命令讀寫設備通道已獲取這個結構,有關ioctl的使用,比較復雜,這里就不說了。下面列出獲取這一數據結構的代碼
int v4lgetcapability(v4ldevice *vd)
{
if(ioctl(vd->fd,
VIDIOCGCAP, &(vd->capability)) < 0)
{
v4lperror("v4lopen:VIDIOCGCAP");
return -1;
}
return 0;
}
*
struct video_picture
brightness Picture brightness
hue Picture hue (colour
only)
colour Picture colour (colour only)
contrast Picture
contrast
whiteness The whiteness (greyscale only)
depth The capture depth
(may need to match the frame buffer depth)
palette Reports the palette that
should be used for this image

這個數據結構主要定義了圖像的屬性,諸如亮度,對比度,等等。這一結構的獲取通過ioctl發出VIDIOCGPICT控制命令獲取。
* struct video_mbuf
size The number of bytes to
map
frames The number of frames
offsets The offset of each frame

這個數據結構在用mmap方式獲取數據時很重要:

size表示圖像的大小,如果是640*480的彩色圖像,size=640*480*3

frames表示幀數

offsets表示每一幀在內存中的偏移地址,通過這個值可以得到數據在圖像中的地址。

得到這個結構的數據可以用ioctl的VIDIOCGMBUF命令。源碼如下:
int v4lgetmbuf(v4ldevice
*vd)
{
if(ioctl(vd->fd, VIDIOCGMBUF, &(vd->mbuf))<0)
{
v4lperror("v4lgetmbuf:VIDIOCGMBUF");
return -1;
}
return
0;
}

而數據的地址可以有以下方式計算:
unsigned char
*v4lgetaddress(v4ldevice *vd)
{
return (vd->map +
vd->mbuf.offsets[vd->frame]);
}

2)獲取影像mmap方式。

在video4Linux下獲取影像有兩種方式:overlay和mmap。由於我的攝像頭不支持overlay方式,所以這里只談mmap方式。

mmap方式是通過內存映射的方式獲取數據,系統調用ioctl的VIDIOCMCAPTURE後,將圖像映射到內存中,然後可以通過前面的v4lgetmbuf(vd)函數和v4lgetaddress(vd)函數獲得數據的首地址,這是李可以選擇是將它顯示出來還是放到別的什麼地方。

下面給出獲取連續影像的最簡單的方法(為了簡化,將一些可去掉的屬性操作都去掉了):
char*
devicename="/dev/video0";
char* buffer;
v4ldevice device;
int width =
640;
int height = 480;
int frame =
0;
v4lopen("/dev/video0",&device);//打開設備
v4lgrabinit(&device,width,height);//初始化設備,定義獲取的影像的大小
v4lmmap(&device);//內存映射
v4lgrabstart(&device,frame);//開始獲取影像
while(1){
v4lsync(&device,frame);//等待傳完一幀
frame
= (frame+1)%2;//下一幀的frame
v4lcapture(&device,frame);//獲取下一幀
buffer =
(char*)v4lgetaddress(&device);//得到這一幀的地址
//buffer給出了圖像的首地址,你可以選擇將圖像顯示或保存......
//圖像的大小為
width*height*3
..........................
}
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦

⑺ 如何在虛擬機的linux系統下測試筆記本的攝像頭

具體方法:

另外一個就是UVC的一個測試軟體luvcview,在資料光碟中的路徑為:Linux-3.0.1apptest攝像頭測試USB攝像頭USBCamera- linux+androidlinux3.0.1系統下-2012-07-05,通過這個可以查看和測試UVC攝像頭。

查看攝像頭信息:./luvcview -d /dev/video2 –L 結果如下:

由此可以看出攝像頭的一些基本信息,更多的不太了解,起碼清楚了輸出格式YUV,以及解析度,接下來通過這些信息來測試。

[root@FORLINX6410]# ./luvcview -d /dev/video2 -f yuv -s 320x240

即可運行。

閱讀全文

與linux攝像頭識別相關的資料

熱點內容
編程怎麼做3d生存游戲 瀏覽:955
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115
文件查看設置信息失敗 瀏覽:668
編程如何編出烏鴉喝水的課文 瀏覽:20
國家反詐app報案助手怎麼使用 瀏覽:439
秘密文件丟失多少天 瀏覽:237
js中csstext 瀏覽:382
目標文件名過長復制 瀏覽:892
樂動力計步器老版本 瀏覽:933
壓縮文件鏈接怎麼編輯 瀏覽:808
如何鎖定PDF文件里的圖章 瀏覽:89
資料庫超時是什麼 瀏覽:649
文件怎麼改整列內容 瀏覽:764
360壓縮文件發郵件空白 瀏覽:813
上哪裡查自己大數據 瀏覽:907
編程語言怎麼學車 瀏覽:189
編程該怎麼學才能先找工作 瀏覽:524
文件刻制光碟多少錢 瀏覽:861
校園網的網路組成結構 瀏覽:862

友情鏈接