當前位置:編程學習大全網 - 編程語言 - 打開攝像頭進行編程。

打開攝像頭進行編程。

可以搜索壹下matlab圖像采集工具箱。

我過去就是這樣使用CCD的:

Matlab中的圖像采集工具箱為我們提供了必要的函數,我們可以直接調用。在這篇文章中,我們主要介紹如何使用這個工具箱來編程USB2.0相機。

事不宜遲,言歸正傳。但是壹定要記住,妳必須安裝壹個PC攝像頭,然後才能做下面的事情。如果是第壹次安裝攝像頭,最好重啟PC,否則可能無法識別攝像頭。

在整個過程中,我們需要做到以下幾點:

1,查詢USB 2.0攝像頭的具體參數(imaqhwinfo)

2.創建videoinput對象。

3、圖像預覽和顯示(preview、stoppreview、closepreview和image)

4.獲取視頻圖像(獲取快照)

5.圖像采集設備的采集和設置(獲取和設置)

6、關閉視頻對象(刪除)

在正式解釋之前,我想解釋壹下圖像采集工具箱中的以下術語:

圖像采集設備:如照相機和掃描儀。

圖像采集適配器:主要用途是通過驅動在Matlab和圖像采集設備之間傳遞信息。

ROI:感興趣區域

談幾個常用的函數,這裏只說明它們的作用,具體如何使用參考幫助系統。

getselectedsource

imaqfind

isvalid

peekdata

獲取數據

imaqmontage

給我們壹個攝像頭,我們必須知道它的相關參數,然後才能對它進行編程。當然可以查閱商家手冊,但是那樣累嗎?

Matlab的圖像采集工具箱為我提供了imaqhwinfo()從PC上安裝的圖像中獲取硬件信息。

當沒有輸入參數時,返回壹個結構,該結構包含系統中已有的適配器和Matlab的版本信息(我們通常第壹次使用這個)。

代碼:

& gt& gtinfo=imaqhwinfo

信息=

安裝的適配器:{'coreco'' winvideo'}%在這裏您可以看到我的電腦上安裝了兩個適配器。

MATLAB版本:“7.6 (R2008a)”

工具箱名稱:“圖像采集工具箱”

工具箱版本:“3.1 (R2008a)”

當有輸入參數時,返回壹個結構,該結構包含指定適配器的數據信息。

代碼:

& gt& gtwin _ info = imaqhwinfo(' winvideo ')%我們來看看第二個適配器的具體參數。

win_info =

適配器DLL name:[1x 81 char]%適配器DLL文件的絕對路徑。

適配器DLL版本:“3.1(r 2008 a)%適配器DLL文件版本

adapter name:“win video“% s”% s適配器名稱

DeviceIDs: {[1]}%設備ID號,我們經常需要。

device info:[1x 1 struct]%設備信息,這裏主要是圖像采集設備的壹些參數,比較重要。

% = = = = = = = = = = = = = =讓我們來了解壹下這個圖像采集設備的細節是什麽= = = = = = = = = = = = = = =

& gt& gtwin_info。設備id

ans =

[1]

& gt& gtdev_win_info=win_info設備信息

dev_win_info =

DefaultFormat: 'RGB24_320x240'%獲取圖片的默認格式。

支持的設備文件:0

設備名稱:“USB PC攝像頭P227”%設備名稱

設備ID: 1%設備號

對象構造器:'視頻輸入(' win video ',1)'%對象構造方法,大部分都壹樣。

支持的格式:{1x12cell}%采集到的圖像壹般有很多支持的格式,上面的DefaultFormat只是默認格式。

% = = = = = = = = = = = = = = = = = = = = = = = = =看看圖像采集設備支持的圖像格式= = = = = = = = = = = = = = = = = =

& gt& gt開發信息。SupportedFormats%您可以看到,我的電腦上的相機在12中支持以下圖片格式。

ans =

列1到5

' I420 _ 160 x120 ' ' I420 _ 176 x144 ' ' I420 _ 320 x240 ' ' I420 _ 352 x288 ' ' I420 _ 640 x480 '

第6欄至第9欄

' RGB 24 _ 1280 x960 ' ' RGB 24 _ 160 x120 ' ' RGB 24 _ 176 x144 ' ' RGB 24 _ 320 x240 '

列10到12

' RGB 24 _ 352 x288 ' ' RGB 24 _ 640 x480 ' ' RGB 24 _ 800 x600 '

視頻預覽、拍攝和保存

(1)創建視頻輸入對象

obj = video input(adapter name,deviceID,format)

Adaptorname:適配器的名稱,第壹次使用不帶參數的imaqhwinfo函數可以獲得。

DeviceID:設備ID號,第壹次可以通過imaqhwinfo函數獲取。

格式:視頻采集格式,可以通過DeviceInfo的SupportedFormats獲取。如果未填寫,將使用默認格式。

代碼:

& gt& gtObj =視頻輸入(' win video ',1,' rgb24 _ 320x240')%這裏我們使用默認的視頻捕獲格式。

使用“USB PC CAMERA P227”的視頻輸入對象摘要。

采集源:輸入1可用。

采集參數:“輸入1”是當前選擇的源。

使用所選信號源,每個觸發器10幀。

啟動時記錄的RGB24_320x240 '視頻數據。

抓取每1幀中的第壹幀。

觸發時將數據記錄到“內存”中。

觸發器參數:啟動時1個“立即”觸發器。

狀態:等待開始。

自啟動以來采集了0幀。

0幀可用於GETDATA。

(2)打開視頻預覽窗口。

himage=preview(obj,himage)

對象:視頻捕獲對象

Himage:視頻預覽窗口對應的句柄,也就是說在指定的句柄對象中預覽視頻;此參數可以留空。

至於關閉和停止預覽窗口,可以使用colsepreview和stoppreview函數。

代碼:

vidRes = get(obj,' video resolution ');

nBands = get(obj,' number of bands ');

Figure()%指定預覽表單中顯示的圖形。

Axes()%指定預覽窗口中顯示的坐標系。

hImage = image( zeros(vidRes(2),vidRes(1),n bands));

預覽(obj,hImage);

(3)圖像采集、顯示和存儲

代碼:

%frame是H×w×B . B . H圖像高度的矩陣,由ROIPosition指定;w圖像寬度,由ROIPosition指定;b電纜數量,由頻帶數量指定。

frame = get snapshot(obj);

imshow(幀);

imwrite(fame,' snap.jpg ',' jpg ');

  • 上一篇:什麽叫源文件?
  • 下一篇:新聞宣傳購買無人機的理由怎麽寫啊
  • copyright 2024編程學習大全網