opencv 帧差法 absdiff
来源:互联网 发布:建行信用卡 知乎 编辑:程序博客网 时间:2024/05/29 18:53
opencv 帧差法 absdiff
opencv2.3.1里的以下函数可计算当前帧与背景之差的绝对值。
cv::absdiff(backgroundImage,currentImage,foreground);
如果摄像机是固定的,那么我们可以认为场景(背景)大多数情况下是不变的,而只有前景(被跟踪的目标)会运动,这样就可以建立背景模型。通过比较当前帧和背景模型,就能轻松地跟踪目标运动情况了。这里,最容易想到的比较方式就是当前帧减去背景模型了
代码如下:
using namespace std;using namespace cv;int main(int argc,char * argv()){//读入视频//VideoCapture capture("CarLights2.avi");VideoCapture capture(0);//namedWindow("camera",WINDOW_AUTOSIZE);//namedWindow("moving area",WINDOW_AUTOSIZE);Mat tempframe, currentframe, previousframe;Mat frame;int framenum = 0;//读取一帧处理while (true){if(!capture.isOpened()){cout << "read video failure" << endl;return - 1;}//tempframe = capture.read(frame);capture >> frame;tempframe = frame;framenum++; if (framenum == 1){cvtColor(tempframe, previousframe, CV_BGR2GRAY);}if (framenum >= 2){Mat currentframe1,currentframe2, currentframe3, currentframe4;cvtColor(tempframe, currentframe, CV_BGR2GRAY);//转化为单通道灰度图,此时currentFrame已经存了tempFrame的内容 absdiff(currentframe,previousframe,currentframe);//做差求绝对值 threshold(currentframe, currentframe, 20, 255.0, CV_THRESH_BINARY);dilate(currentframe, currentframe,Mat());//膨胀erode(currentframe, currentframe,Mat());//腐蚀//显示图像 imshow("camera", tempframe);imshow("moving area", currentframe);}//把当前帧保存作为下一次处理的前一帧 //cvtColor(tempframe, previousframe, CV_BGR2GRAY);waitKey(33);}//end while }
1 0
- opencv 帧差法 absdiff
- opencv 帧差法 absdiff
- opencv基础知识-AbsDiff
- OpenCV函数学习之cv2.absdiff
- cv::absdiff函数的用法
- OpenCV实现帧差法
- 【OpenCV】10th-帧差法
- OpenCV帧差法实现方法
- opencv
- openCV
- openCV
- Opencv
- opencv
- opencv
- opencv
- OpenCV
- OpenCV
- OpenCV
- Cocoa 新的依赖管理工具:Carthage
- Hadoop系列三:Hadoop之Pig篇
- MyBatis删除多行,in语句的使用
- 北大1480 最长子序列和
- MySQL语句总结1
- opencv 帧差法 absdiff
- C3p0源码探索(一)之配置篇
- cocopods 时 xcode输入import自动联想补齐代码的功能
- method反射机制
- 使用NPOI完全脱离excel的导出二,批量数据导出性能优化。
- 使用Android Studio搭建Android集成开发环境(图文教程)
- POJ 1159---Palindrome
- 更多技术信息,课程信息,请关注课程专用公众号
- linux机器上建立授信