我已经使用nashruddin.com中的源代码在来自我的网络摄像机的实时视频流中检测到的人脸上绘制了一个矩形。如何从图像访问检测到的脸部像素?
我想将面部或整个矩形更改为黑色。 我尝试过使用本页面的解决方案:http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00053000000000000000
但是我不能让脸部或矩形变成黑色。
什么其实我试过了,其中一个例子是这样的:
//do the capture frame all those
for(int i = 0 ; i < (faces ? faces->total : 0) ; i++) {
CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
cvRectangle(frame,
cvPoint(r->x, r->y),
cvPoint(r->x + r->width, r->y + r->height),
CV_RGB(255, 0, 0), 1, 8, 0);
int x=r->x;
int y=r->y;
int width=r->width;
int height=r->height;
for(int i=x; i<=height; i++){
for(int j=y; j<=width; j++){
//data[i*step+j*channels+0] = 0;//3=yellow; 2=blue; 1=purple;
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 0]=0;// B
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 1]=0; // G
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 2]=0; // R }}
我想要做的是,我宣布的宽度和高度,通过使用也被使用在cvRectangle点,这是点r。
但是,输出尺寸与矩形的外观大小决不相同。输出通常是矩形或正方形,颜色是黑色,但与矩形有不同的尺寸和较小的尺寸,它们应该是这样,而且它们也较小并且不在对齐中。
我不知道为什么。
请帮忙。 其目的是用黑色遮盖脸部,用黑色像素遮盖脸部。
请帮帮我。 谢谢。