我遇到了让标准开放式 CV 人脸检测 ( facedetect
) 工作的问题。网络摄像头灯亮了,但注意到发生了,程序启动时有一个像这样的小窗口:
安装 OpenCV 并获取 OpenCV 源
brew tap homebrew/science brew install --with-tbb opencv wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.6/opencv-2.4.6.tar.gz tar xvzf opencv-2.4.6.tar.gz
使用标准分类器运行
facedetect
样本。cd ~/opencv-2.4.6/samples/c chmod +x build_all.sh ./build_all.sh ./facedetect --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml"
我可以修改 C++ 示例代码并重新编译并运行,但我不知道问题是什么。
有人有建议吗?
更新问题是来自的图像cvQueryFrame
是空的:
IplImage* iplImg = cvQueryFrame( capture );
frame = iplImg;
if( frame.empty() )
{
cout << "FRAME EMPTY\n"; // This is getting logged
break;
}
更新:当源是静态图像时它可以正常工作,因此问题与网络摄像头源有关。