修改
Human walk motion Detect链接说明了如何使用C ++在Visual Studio 2010上使用Opencv 2.3
检测人体运动。我下载了源代码motemp9.c
以及文本文件walkImgs.txt
和output.txt
以及标题filter.h
,但不了解以下内容。
我很难执行这个程序。有人可以帮我澄清这些要点吗?
在motiontemp9.c
文件中,在main下,行中的文件不存在。或者是这些文件
walkImgs和输出?
if((ReadFP=fopen("walk2.txt", "r")) == NULL) ErrorExit(ER_READ_OPEN);
if((WriteFP=fopen("output2.txt", "w")) == NULL) ErrorExit(ER_WRITE_OPEN);
运行代码时出现以下错误
error C2660: 'cvGetSeqElem' : function does not take 3 arguments
motemp9.cpp(186): error C2227: left of '->rect' must point to class/struct/union/generic type
motemp9.cpp(189): error C2440: '=' : cannot convert from 'CvScalar' to 'int'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
motemp9.cpp(218): error C2664: 'cvCircle' : cannot convert parameter 4 from 'int' to 'CvScalar'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
motemp9.cpp(220): error C2664: 'cvLine' : cannot convert parameter 4 from 'int' to 'CvScalar'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
请指导运行此代码需要执行的操作。
答案 0 :(得分:1)
你能否重新提出你的第一个问题,因为我没有真正得到它。
if((ReadFP=fopen("walk2.txt", "r")) == NULL) ErrorExit(ER_READ_OPEN);
if((WriteFP=fopen("output2.txt", "w")) == NULL) ErrorExit(ER_WRITE_OPEN);
这两行只是在运行程序时检查文件是否存在。如果其中一个不存在,则返回ErrorExit
对于您的第二个问题,在此示例中,
创建动态历史记录图像。这包括将图像转换为灰度,按顺序查找一次两帧之间的差异,这创建了运动的分层历史的轮廓图像。 Implementation
因此,您需要将walk2.txt放在从自己视频中提取的图像的路径中。
希望有所帮助