opencv學習之四十二 簡單運動檢測

2021-08-15 17:33:17 字數 2232 閱讀 7313

背景法是:將一幅圖作為背景,讓後和每一幀對比;缺點是一開始存入的背景可能隨光照變法而造成錯誤,但是可以用在光照環境穩定的地方,優點是可以檢測之前背景沒有的景象;

差幀法是:將前一幀和後一幀進行對比;缺點是無法對運動後突然又靜止的景象進行識別,優點是光照不影響;

例項背景法:

///運動檢測,攝像頭檢測,背景法

mat movedetectback(mat background,mat frame);//宣告運動檢測函式

void imgmovedetectionback()

mat frame;//儲存幀

mat background;//儲存背景影象

mat result;//儲存結果影象

//先儲存背景

bool firstf= cap.read(frame); // 先獲取一幀

//異常處理

if (!firstf)

else

//儲存背景

while (1)

///if (frame.empty())//對幀進行異常檢測

//將背景和每一幀做差

result = movedetectback(background, frame);//呼叫movedetect()進行運動物體檢測,返回值存入result

imshow("result", result);

//if (waitkey(30) == 27) //按鍵退出

}waitkey(10);

cap.release();

}//檢測函式

mat movedetectback(mat background, mat frame)

return result;//返回result

}

效果:

差幀法:

///運動檢測3,攝像頭檢測,差幀法

mat movedetect3(mat background,mat frame);//宣告運動檢測函式

void imgmovedetection3()

mat frame;//儲存幀

mat temp;//儲存前一幀影象

mat result;//儲存結果影象

while (1)

///if (frame.empty())//對幀進行異常檢測

if ( temp.empty())//如果temp為空則為第一幀

else//若不是第一幀(temp有值了)

imshow("result", result);

temp = frame.clone();

//if (waitkey(30) == 27) //按鍵退出

}waitkey(10);

cap.release();

}//檢測函式

mat movedetect3(mat background, mat frame)

return result;//返回result

}

效果:

C 學習筆記四十二 函式過載

函式多型 函式過載 使我們能夠使用多個同名的函式。多型 是指有多種形式。函式多型允許函式有多種形式,函式過載是指可以有多個同名的函式,對名稱進行了過載。這兩個術語指的是同一件事。可以通過函式過載來設計一系列函式 它們完成相同的工作,但使用不同的引數列表。函式過載的關鍵是函式的引數列表 也成為函式特徵...

Python學習札記 四十二 IO 2

1.stringio 顧名思義就是在記憶體中讀寫str。usr bin env python from io import bytesio as stringio def main f stringio f.write hi f.write f.write all print f.getvalue ...

Directx11教程四十二下之進行骨骼動畫的渲染

前面兩小節分別說明了骨骼動畫的數學原理和一種骨骼動畫格式m3d的讀取,這一節講解渲染的思路。其實,進行骨骼動畫的渲染,整體思路是 第一,求出某個動畫片段下某乙個時間點下所有骨骼的finalmatrix 由骨骼在某一幀的pos,scale,quat求出 第二,由於 第一 中渲染骨骼動畫的時間點可能不在...