gpt4 book ai didi

image-processing - 如何使用kinect和opencv进行面部检测?

转载 作者:行者123 更新时间:2023-12-02 16:43:28 26 4
gpt4 key购买 nike

我让kinect与openni和opencv一起运行。我已经使用网络摄像头使用了级联进行面部检测,但是我无法使用kinect进行面部检测

int main( int argc, char* argv[] ){
try
{
... // call OpenCV
VideoCapture capture( CV_CAP_OPENNI );
CvHaarClassifierCascade* cascade=0;
CvMemStorage* storage=0;
CvSeq* face;
storage=cvCreateMemStorage(0);
cascade=(CvHaarClassifierCascade *)cvLoad("haarcascade_profileface.xml",0,0,0);*/
if(cascade){
for(;;)
{
Mat depthMap;


if( !capture.grab() )
{
cout << "Can not grab images." << endl;
return -1;
}
else
{
if( capture.retrieve( depthMap,CV_CAP_OPENNI_BGR_IMAGE) )

{
/*IplImage* img = new IplImage(depthMap);
face=cvHaarDetectObjects(img,cascade,storage,1.1,3,CV_HAAR_DO_CANNY_PRUNING,cvSize(0,0));
for(int i=0;i<(face?face->total:0);i++)
{

CvRect* r=(CvRect*)cvGetSeqElem(face,i);
CvPoint pt1={r->x,r->y};
CvPoint pt2={r->x+r->width,r->y+r->height};
cvRectangle(img,pt1,pt2,CV_RGB(0,255,0),3,4,0);
//imshow( "depth map", depthMap);
}*/
const float scaleFactor = 0.05f;
//Mat show; depthMap.convertTo( show, CV_8UC3, scaleFactor );
imshow( "depth map", depthMap);
// }



}

if( waitKey( 30 ) >= 0 )
break;
}
}

}
catch( cv::Exception& e )
{
const char* err_msg = e.what();
std::cout << "exception caught: " << err_msg << std::endl;
}
return 0;
}

...有人请帮帮我

最佳答案

cvHaarDetectObjects仅适用于灰度图像或CV_8U类型的矩阵。
因此,您必须在从Kinect检索RGB图像后进行转换。

cvtColor( frame, frame_gray, CV_BGR2GRAY );

我还看到您将depthMap命名为RGB图像,这可能会造成混淆。

关于image-processing - 如何使用kinect和opencv进行面部检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com