我遇到了一个问题,让标准的公开简历人脸检测(facedetect)工作。网络摄像头的灯亮了,但是注意到,这个程序是用这样一个很小的窗口来启动的:

我在优秀博客帖子和样本代码工作。我在这里所做的是:
facedetect示例。
cd ~/opencv-2.4.6/samples/c chmod +x --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml“./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;
}更新:当源是静态图像时,它工作正常,所以这个问题与摄像头源有关。

发布于 2013-10-12 18:20:57
您可以尝试本地化问题,您是否尝试从和网络摄像头显示的图像,而不运行任何其他操作?
通过OpenCV从网络摄像头获取图像似乎存在问题,这类问题可能是由于硬件原因造成的,例如我的朋友macbook捕获的图像是320x240,而我的则是640x480。我的朋友刚刚改变了一个简单的配置,从相机的设置,他的问题解决了。你的问题可能是这样的。
或者,您可以尝试使用一些图像来运行人脸检测器,您需要更改代码,这样它就可以从磁盘加载一个图像,并尝试在它们上检测脸。如果它不能这样工作,我们可以说,你的问题不是相机,有一个更大的问题,如果它有效,我们肯定可以说,问题是网络摄像头。
编辑
如果您使用的是IplImage类型,一定要从相机中获得更多的图像,有时第一个图像是空的。
发布于 2013-12-16 15:57:29
这是由于OpenCV中的一个bug --它已经修复了(这里的bug报告是http://code.opencv.org/issues/3156),但是在自制/科学中的版本是修复之前的版本。
您可以通过编辑opencv的brew公式来安装一个较新的版本(基于这个拉请求https://github.com/Homebrew/homebrew-science/pull/540 )
编辑/usr/local/Library/opencv.rb/opencv.rb,并替换以下行:
url 'http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.6.1/opencv-2.4.6.1.tar.gz'
sha1 'e015bd67218844b38daf3cea8aab505b592a66c0'带着这些
url 'https://github.com/Itseez/opencv/archive/2.4.7.1.tar.gz'
sha1 'b6b0dd72356822a482ca3a27a7a88145aca6f34c'那就去做
brew remove opencv
brew install opencv小牛的作品(至少对我来说),应该在山狮上工作
更新: OpenCV版本的自制/科学现在已经更新,所以这个答案现在已经过时了!
brew upgrade opencv将使自制获得最新版本,与固定摄像头捕获。
https://stackoverflow.com/questions/19337401
复制相似问题