我想通過加上它們來計算幀序列的均值,然後除以幀的總數。問題是我無法訪問圖像中的像素。我用這個代碼。獲取幀序列的均值
for(i = 1; i <= N; i++){
image = imread(fileName.c_str(),0);
Mat Mean = Mat::zeros(width, height,image.type());
for(w = 0; w < image.rows ; w++)
for(h = 0; h < image.cols ; h++)
Mean.row(w).col(h) += (image.at<unsigned float>(w,h)/N);
}
我總是有一個Assertion失敗的錯誤。 我也試過了:
(float)image.at<uchar>(w,h)
image.row(w).col(h)[0]
image.row(w).col(h).val[0]
但徒然。
這是工作代碼...但我無法顯示最終結果,因爲它是浮動的。
Mat Mean = Mat::zeros(width, height,CV_32F);
for(i = 1; i <= framesToLearn ; i++){
image = imread(fileName.c_str(),0);
accumulate(image, Mean);
}
Mean = Mean /framesToLearn;
imshow("mean",Mean);
waitKey(0);
結果是正確的,但我不能通過imshow()顯示他們......它只是一個白色圖像。 – Misaki
你應該轉換爲'uint8'而不是'float32' – zenpoy
我將CV_32FC3更改爲CV_32S,並且因爲不同的數據類型而導致運行時錯誤。 – Misaki