OpenCV參考手冊之攝像頭

2021-06-21 23:24:03 字數 1897 閱讀 2430

1、從攝像機讀入資料

a)cvcreatecameracapture(攝像裝置id):

只有存在多個攝像裝置時,這個引數才起作用。預設值為-1,代表「隨機選擇乙個」,自然,它更適合僅有乙個攝像裝置的情況。

a)cvvideowriter():

cvvideowriter* cvcreatevideowriter(const char* filename,int fourcc,double fps,cvsize frame_size,int is_color=1);

fourcc 通過四個字元來表示壓縮幀的codec,例如:

cv_fourcc('p','i','m','1')=mpeg-1 codec

cv_fourcc('m','j','p','g')=motion-jpeg codec

cv_fourcc('m','p','4','2'

)=mpeg-4.2 codec

cv_fourcc('d','i','v','3')=mpeg-4.3 codec

cv_fourcc('d','i','v','x')=mpeg-4 codec

cv_fourcc('i','2','6','3')=h263i codec

cv_fourcc('f','l','v','1')=flv1 codec

若編碼器代號為-1,則執行時會彈出乙個編碼器選擇框

is_color 如果非零,編碼器將希望得到彩色幀並進行編碼;否則,是灰度幀(只有在windows下支援這個標誌)

b) cvconvertimage

把一幅影象轉換為另外一幅,並可以選擇同時對其進行垂直翻轉

void cvconvertimage(const cvarr* src,cvarr* dst,int flags=0);

src:輸入影象

dst:目標影象,必須為單通道或者3通道8位影象。

flags:

操作標誌:

cv_cvtimg_flip - 垂直翻轉影象

cv_cvtimg_swap_rb - 交換紅藍通道。在opencv中,彩色影象的通道順序是bgr然而在一些系統中,在顯示影象之前通道順序應該被翻轉(cvshowimage能夠自動轉換)。

函式cvconvertimage轉換一幅影象到另一幅影象,如果需要的話可以垂直翻轉影象。這個函式被cvshowimage使用。

c) cvlogpolar:對數極座標變換(我也不太懂,不過根據例子可以悟出來一些東西)

void cvlogpolar(const cvarr* src,cvarr* dst,cvpoint2d32f center,double m,int flags = cv_inter_linear+cv_warp_fill_outliers);

//src:輸入影象;

dst:輸出影象;center變換中心;輸出的影象在這裡最精確。m幅度的尺度引數。flags:插值方法和以下選擇標誌的結合:

cv_warp_fill_outliers -填充輸出影象所有畫素,如果這些點有和外點對應的,則置零。

cv_warp_inverse_map - 表示矩陣由輸出影象到輸入影象的逆變換,並且因此可以直接用於畫素插值。否則,函式從map_matrix中尋找逆變換。

(x,y)平面內尺寸的差異被轉換為數極座標平面內沿著log(r)軸的位移,旋轉差異被轉換成對數極座標平面內沿sita軸的位移

看下面的例子:(當你修改atof('這裡面的值')的時候,出現的影象會發生變化)

#include"stdafx.h"

#include"highgui.h"

#include"cv.h"

int _tmain(int argc, _tchar* argv)

return 0;

}

中心點是(width/4,height/2) m=1

opencv之呼叫攝像頭

基礎知識 cap.set propid,value cap.isopened 返回 true false 檢查攝像頭初始化是否成功 cap.read 返回兩個值 再返回乙個值,為每一幀的影象,該值是乙個三維矩陣 通用接收方法為 ret,frame cap.read ret 布林值 frame 影象的...

OPENCV讀取攝像頭

opencv highgui cvcreatecameracapture 或cvcapturefromcam windows 中都是由較為低效的 vfw機制實現的,不適合在最終產品中使用。在 windows 中使用directshow opencv 中文網的 yushiqi 提供了乙個基於 dire...

OpenCV攝像頭讀取

在mac下面使用預設的opencv讀取攝像頭程式會報錯 int main int,char videocapture cap 0 open the default camera if cap.isopened check if we succeeded return 1 mat edges name...